EL SM070 00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91 00 DEC STD 070 Video Systems Reference Manual Dec91
EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91 manual pdf -FilePursuit
EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91 EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91
User Manual: EL-SM070-00_DEC_STD_070_Video_Systems_Reference_Manual_Dec91
Open the PDF directly: View PDF
.
Page Count: 1252
| Download | |
| Open PDF In Browser | View PDF |
EL-SM070-00
DEC STD 070
Video Systems
Reference Manual
For Internal Use Only
EL-SM07o..00
Digital Internal Use Only
DEC STD 070 Video Systems
Manual
03-Dec·1991,,
,
R~~,.ce .
DOCUMENT IDENTIFIER: A-MN-ELSM070-00-0000 Rev H.
' '
O,3-D~ .. 1991
ABSTRACT: This manual contains The Video Systems Reference ~n~al;(V~R.MhJicoUeetion·
of Digital standards relating to the development of video display' (tnteraC.tt~'fte.rr]'JHaIS and
terminal related products. including printers. personal computers" workstEl,tlons. arid'terminal
software. Each document in this manual is individually:controlleCJ,aPicbNiif,be updated as
' ,',
.
required.
APPLICABILITY: The standards included within this manual are mallqatory for,engin,eers
designing hardware for terminal products and software engineer~ d~iQping·progti.ins'U$ing
terminal interfaces. Additional requirements are defined in DEC $TO,·07.p-1 Concept,s and
Conformance Criteria.
' ,",',' , , '
STATUS:APPROVED 03-Dec-1991; use VTX SMC for. current status.
.:
NOTE
The material referenced by this document is assumed to ~e m~w;latQry
standards wiless it is clearly marked as: (a) not mandatory;'d,r ';(Ij);gl!id,eime.,$.... .
Material that is marked as not mandatory is considered tob$ of }K)~al.1),entfit.;.> "
to the corporation and should be followed unless there '~" ~'r,eq9~sfqr ',,;:. ;:; ,
non-compliance. Guidelines define approaches and teclmi,q1.,tesJ,'t-at ar~~~sid,.e~a:,
to be good practice, but should not be considered as requi~J1~ .t, .; ~";
' . ' ..
:'-
This document is confidential and proprietary, and is the propertyofOigi1a1
,
Equipment Corporation. It is an unpublished work protected under applicable.
copyright laws.
'
© Digital Equipment Corporation. 1989, 199t. All rights reserved;;:·
Digital Internal Use Only
EL-5M07o..00
Digital Internal Use Only
DEC STO 070 Video
S¥~"ms
"Ij; "
,:"~' \ ",,'
03-Dec·1991
Reference Manual
DOet::Jtv'lENT IDENTIFIE'R":A-MN-ELSM070-00-0000 Rev H, 03-Dec-1991
-," "
", 'I.. . .,
RevC,
RevD,
Rev E,
Rev F,
RevH,
D~bum~ni Management CategorY:
Responsible Department:
Responsible Person:
SMC Writer:
APPROVAL: Peter
Sichel~
..V.lPS
:::',-.('
14-Apr-1989
06-Sep-1990
17-Oct-1990
20-Mar-1991
03-Dec-1991
ECO
ECO
ECO
ECO
ECO
Number
Number
Number
Number
Number
CTS02
CTS03
CTS04
CTS05
NR006
Terminal Interface Architecture (STI)
VIPS Terminals Architecture
Peter Sichel
Georgia Ireland
Terminals Architecture
Peter Sichel - VIPS Terminal Interface Architecture
Control
Direcl requests for furt~er information to the responsible person shown on the management
page of each document in this manual.
Use VTX SMC to order copies of this document from Standards and Methods Control. Send
distribution questions to JOKUR::SMC or call DTN: 234-4423
The DIG!TAL logo and ReGIS are trademarks of Digital EqUipment Corporation.
Digital Internal Use Only
EL-SM070-00
03-Dec-1991
Table of Contents/Revision Status
"'-,
.
,"
litle
Part Number
Revision
DEC STD 070-0 Video Systems Standard - Introduction
EL-00070-00
Rev B
DEC STD 070-1 Video Systems Reference Manual - Concepts and
Conformance Criteria
EL-00070-01
Rev AX10
DEC STD 070-2 Video Systems Reference Manual - Specification Program
Structure
EL-00070-02
Rev AX11
DEC STD 070-3 Video Systems Standard - Code Extension Layer
EL-00070-03
Rev A
DEC STD 070-4 Video Systems Reference Manual - Terminal Management
"7"
,.
Rev A
DEC STD 070-5 Video Systems Reference Manual - Character Cell Display
EL-00070-Q5
Rev AX11
DEC STD 070-6 Video Systems Reference Manual - Keyboard Processing
EL-00070-06
Rev A
DEC STD 070-7 Video Systems Reference Manual - Printer Port Extension
EL-00070-07
Rev AX12
DEC STD 070-8 Video and Printer Standards Reference Manual - ReGIS
Graphics Extension
EL-00070-08
DEC STD 070-9 Video and Printer Systems Reference Manual - Sixel
Graphics Extension
EL-00070-09.
Rev A1
DEC STD 070-10 Video Systems Standards - Dynamically Redefinable
Character Sets Extension
EL-00070-10
Rev A
DEC STD 070-11 Video Systems Reference Manual - User Defined Keys
Extension (UDK)
EL-00070-11
Rev AX10
DEC STD 070-12 Video Systems Reference Manual- Terminal Synchronization
EL-00070-12
Rev A1
DEC STD 070-13 Video Systems Reference Manual - Text Locator Extension
EL-00070-13
Rev A
DEC STD 070-0A Video Systems Reference Manual - VT52 Emulation
EL-00070-0A
Rev AX11
DEC STD 070-0B Video Systems Reference Manual - Programmer's Guide
EL-00070-0B
Rev AX10
DEC STD 070-0C Video Systems Reference Manual - Product Reference
EL-00070-0C
Rev AX11
DEC STD 070-0 Video Systems Reference Manual - Documented Exceptions
EL-00070-OD
Rev AX11
Video Systems Reference Manual Master Index
EL-00070-IN
Rev C
Digital Internal Use Only
. Rev A
1
EL-00070,,:,0'0
.
VSRM - Introduction
14-Apr-1989
Page 1
Digital Internal Use Only
DEC STD 070-0 VIDEO SYSTEMS STANDARD INTRODUCTION
Document Identifier: A-DS-EL00070-00-0 Rev B, 14-Apr-1989
ABSTRACT: This standard contains an introduction to DEC STD 070
Video Systems Reference Manual (VSRM), which is a collection ~
Digital standards relating to the development of video display
(interactive) terminals and terminal related products, including
printers, personal computers, workstations, and terminal software.
It describes the audience for DEC STD 070 and those responsible
for its development and maintenance. It also defines key
terminology, and provides a Table of Contents for all sections of
the mallual.
Each document in this manual is controlled individually.
material in this handbook will be updated as required. .
The
APPLICABILITY: This standard is mandatory for engineers designing
hardware for terminal products and software engineers designing
programs using terminal interfaces. Additional requirements are
defined in DEC STD 070-1 Video Systems Reference Manual - Concepts
and Conformance Criteria.
STATUS:
r
I
I
I
I
APPROVED 14-Apr-1989; type $ VTX SMC for expiration date.
This document is confidential and proprietary. It is an
unpublished work protected under the Federal copyright· laws.
Copyright (c) Digital Equipment Corporation.
reserved.
1989.
Digital Internal Use Only
momDomD™
All rights
EL-OOOTO-OO
VSRM - Introduction
14-Apr-l~~~
~age
~
Digital Internal Use Only
TITLE: DEC STD 070-0 VIDEO SYSTEMS STANDARD - INTRODUCTION
DOCUMENT IDENTIFIER: A-DS-EL00070-00-0 Rev B, 14-Apr-1989
REVISION HISTORY: Rev A, 29-Apr-1988
Rev B, 14-Apr-1989
Document Management Category:
Responsible Department:
Responsible Person:
SMC Writer:
ECO #CTSOI
Terminal Interface Architecture (STI)
DSG Terminals Architecture
Peter Sichel
Patricia Winner
APPROVAL: This document, prepared by the Desktop Systems Group,
has been reviewed and recommended for approval by the
General Review Group for its category for use throughout
Digital.
~~ e-':-·
~r Conk in, Technical Director,
Desktop Systems Group
Peter Sichel, Desktop Systems Group
f,2/JtJ~
Eric Williams, Standards
Process Manager
Direct requests for further information to Peter Sichel,
DSGl-2/C7, DTN 235-8374, HANNAH::TERMARCH
Copies of this document can be ordered from Standards and Methods
Control, $ VTX SMC, CTSl-2/D4, DTN 287-3724, or JOKUR::SMC.
Please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.
mDmDomDTM
. EL-00070-00
VSRM - Introduction
14-Apr-1989
Page 3
Digital Internal Use only
CONTENTS
1
2
3
4
5
INTRODUCTION • •
AUDIENCE . . • •
RESPONSIBILITY
GENERAL TERMINOLOGY
REFERENCED DOCUMENTS •
•
·
·
·
5
6
6
7
31
EL-00070-00
VSRM - Introduction
mDmoomD™
14-Apr-1989
page 4
Digital Internal Use Only
EL-00070-00
VSRM - Introduction
1
29-Apr-1988
Page 5
Digital Internal Use Only
INTRODUCTION
Digital Equipment Corporation has traditionally been a pioneer in
developing and implementing standards for terminal service
interfaces. The VT100 was Digital's first terminal based on the
ANSI standard for control sequence encoding (ANSI X3.64). Many of
Digital's printer and display terminals have since implemented
ANSI and DEC-private controls, and Digital has been an active
participant in the development of new controls. The development
of ReGIS (Remote Graphics Instruction Set) has enabled the
corporation to implement a variety of graphics terminal products,
and establish Digital as a force in the graphics terminal market.
Digital has built a number of terminals based on these interfaces,
and has committed that future terminal products will continue to
support these interfaces to ensure software compatibility for
operating systems as well as application programs. It is expected
that computing terminals and workstations will also emulate these
interfaces in order to take advantage of the large body of
software that already exists for these devices.
The DEC STD 070 Video Systems Reference Manual (or Video SRM)
documents-the-Interfaces to Digital video terminal products. It
is intended to serve as both an implementation specification for
product developers, and as a guide to programmers attempting to
produce software that is transportable across a wide range of
devices. It defines the interfaces in a manner that is
independent of the physical characteristics of a particular device
implementation. Enough flexibility is allowed in the interface
description to permit a wide variety of terminal products to be
produced, while ensuring that software can be designed that can
intelligently make use of the full range of features in a given
product.
As new functions are developed for new terminal products, they
will be added to the Video SRM before final implementation.
Furthermore, an architectural certification process provides a
means of measuring product performance against the Video SRM, and
ensures software compatibility across products.
Products claiming conformance to the architectural specifications
contained in the Video SRM must be submitted for certification
testing and evaluated against the requirements, of these standards.
EL-00070-00
VSRM - Introduction
2
14-Apr-1989
Page 6
Digital Internal Use Only
AUDIENCE
There are two intended audiences for the Video SRM. One is the
engineers who design the hardware and firmware for future terminal
products. It is important that these designers have a thorough
knowledge of the functionality required at the device interface in
order to build devices at a reasonable cost that will be interface
compatible with existing software products. The Video SRM
provides a detailed description of the logic required to implement
these interfaces, and thus guarantees that gratuitous changes will
not be introduced.
The second audience for the Video SRM is the software engineers
who design programs that use terminals to implement their user
interfaces. The Video SRM provides these programmers with a
convenient single source of information regarding Digital's family
of terminals and workstation products. This document enables
those engineers to produce device-independent software without the
need to consult a proliferation of user's manuals and understand
the discrepancies between implementations.
The greatest benefit of this document is to the Digital customer.
By providing a single point of reference between hardware and
software components designed by the corporation, Digital
significantly reduces consternation and confusion among field
sales and servi~e personnel and satisfies the marketplace that
Digital provides system components that are designed to work
together.
3
RESPONSIBILITY
Development and maintenance of the DEC ~ 070 Video Systems
Reference Manual is the responsibility of the Terminals
Architecture Group, reporting to the Technical Director of the
Desktop Systems Group (DSG). Distribution and control of the
document is handled through the Standards and Methods Control
group of Internat~onal Standards, Information, and Services
(ISIS).
Section 1 delineates general architectural concepts and
conformance certification criteria applicable to these
requirements.
mDmDomD™
EL-00070-00
VSRM.- Introduction
4
29-Apr-1988
'Page ,7
Digital Internal Use Only
GENERAL TERMINOLOGY
The following terminology is used throughout this document and
applies across each section.
coding interface ~ A software or hardware interface through which
bytes of character-coded information are passed between terminal
equipment and an application process across a host port, or
between terminal equipment and a printer across a printer port.
external interface - product interfaces between a terminal,
personal computer, or workstation, and a remote system.
Host Port - The coding interface between a terminal or terminal
process and an application process, whether the application
process is running inside the terminal or in a host computer.
internal interface - Product interfaces between a terminal
sub-system and softwa~e processes running within a terminal,
personal computer, or workstation.
Printer Port - The coding interface between a terminal or terminal
process and a printer.
receive - To accept coded character information across a coding
interface. service class - A set of functionally related terminal control
operations, associated by a common object type.
transmit - To transfer coded character information across a coding
interface.
user; terminal user - A person operating a terminal device for the
purpose of interacting with some component of a computer system or
network.
mDmDomD™
EL-00070-00
VSRM - Introduction
14-Apr-1989
.
Page 8
Digital Internal Use Only
The following Table of Contents presents an outline of this manual
and serves to point the reader to major areas of information. A
more detailed Table of Contents is available with each section.
CONTENTS
CHAPTER 1
DEC STD 070-1 VIDEO SYSTEMS REFERENCE MANUAL CONCEPTS AND CONFORMANCE CRITERIA
1.1
INTRODUCTION
1.2
STRUCTURE OF THE MANUAL
1.3
1.3.1
1. 3.2
1.3.3
ARCHITECTURAL STRUCTURE • • • • •
Virtual Terminals . . • • . • • •
Layers • • • • • •
Service Classes
1.4
SCOPE
1.5
1. 5.1
1.5.2
1.5.3
ARCHITECTURAL CONFORMANCE • • • •
Definitions . • • • • • • • • •
User Preference Features • • • •
Rules For Conformance
• • •
1.6
1.6.1
1. 6.2
1. 6.3
1-17
1-17
1.6.4
LEVEL 1 CONFORMANCE • • •
Conforming Products • • • • • •
Required Functions . . . • • . .
Extensions To Level 1 . . . . .
Level 1 User Preference Features .
1.7
1. 7.1
1.7.2
1. 7.3
1. 7.4
LEVEL 2 CONFORMANCE
. . •
Conforming Products . . . •
Required Functions . . • • •
Extensions To Level 2 . . • . .
Level 2 User Preference Features .
1-23
1-23
1-23
1-23
1-25
1.8
1. 8.1
1.8.2
1. 8.3
CERTIFICATION • • .
Certification Test Process •
The Waiver Process
Resolution Of Open Issues
1-27
1-28
1.9
1. 9.1
CHANGE HISTORY • • • . • • . • . .
Revision 0.0 To AX10 . . . . . .
mDmoomD™
1-5
• • 1-5
• 1-8
• 1-8
· 1-8
1-10
1-11
.. . . . .
1-12
1-12
1-14
1-15
1-18
1-20
1-22
1-26
1-28
1-30
1-30
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 9
Digital Internal Use Only
CONTENTS
CHAPTER 2
DEC STD 070-2 VIDEO SYSTEMS REFERENCE MANUAL SPECIFICATION PROGRAM STRUCTURE
2.1
2.1.1
2.1.2
INTRODUCTION • • • • • • . • • • • • • • • · • 2-4
Algorithmic Specification . . • . • • •
2-4
Use Of Pascal
• . • • • . • . . . . . • · . 2-4
2.2
SPECIFICATION PROGRAM STRUCTURE
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
SUMMARY OF STATE • • • • • . . . • •
Code Extension Layer - Parsing
Code Extension Layer - Graphics
.
Terminal Management
. . • •
Character Cell Display
.•.•
Keyboard P~ocessing
. . . . .
Printer Port Extension
. .
Extensions . • . . .
. . . .
2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
EXECUTIVE PROCEDURES . .
Executive Loop . . . .
Event Handling Tables
Device Attributes
Device Status Report •
Set And Reset Modes
2-13
2-13
2-15
2-21
2-22
2-24
2.5
2.5.1
2.5.2
CHANGE HISTORY . . .
Rev 0.0 To AX10
....
Rev AX10 To AX11
2-28
2-28
2-29
· . 2-6
. . . . .
.....
. • . . .
. . . . .
.
.
.
.
2-7
2-7
2-8
2-9
2-10
2-12
2-12
2-12
A more detailed Table of Contents is available with each section.
~DmDDmDTM
EL-00070-00
VSRM - Introduction
14-Apr-1989
Page 10
Digital Internal Use Only
CONTENTS
DEC STD 070-3 VIDEO SYSTEMS STANDARD - CODE
EXTENSION LAYER
CHAPTER 3
3.1
3.1.1
3.1.2
3.1.3
3.1.4
I
I
I
I
r
..............
3-7
3-7
3-7
3-7
3-8
3.2
TERMINOLOGY
3.3
3.3.1
3.3.2
3.3.3
3.3.4
CHARACTER COOING DESCRIPTION
Character Codes • . • . •
7-Bit Character Sets • • • • • • .
8-Bit Character Sets • • • •
Control and Graphic Codes • • •
3-12
3-12
3-12
3-14
3-16
3.4
SPECIAL CHARACTERS
3-17
3.4.1
3.4.2
3.4.3
3.4.4
I
I
I
I
INTRODUCTION • • • • • • • • ••
• • • • •
Scope . . . . . . . . . . . .
... . .
National Replacement Character Set (NRCS)
Extension • • • • • • • • • •
•
8-Bit Interface Architecture Extension • • •
Relationship to Terminal Interface
Archi tecture (TIA).
• • •
•
2/0 (Space) • • • •
7/15'(Delete) • • •
10/0 • • • • • •
15/15 • • • • • • .
3-10
3-17
3-17
3-17
3-17
3.5
3.5.1
3.5.2
3.5.3
3.5.4
3.5.5
CONTROL CODE EXTENSION TECHNIQUES . . •
General Rules . . .
...
Escape Sequences • • . . • . • . .
Control Sequences . . . . • .
Control Strings
. . .
Parsing Algorithms . . • .
3.6
3.6.1
3.6.2
3.6.3
3.6.4
GRAPHIC CODE EXTENSION TECHNIQUES
3-59
Description of Shift Functions . •
3-59
Designating Character Sets . • • .
3-62
The User Preference Supplemental Set (UPSS) 3-62
Default D~signation and Invocation
3-63
3.7
3.7.1
3.7.2
3.7.3
3.7.4
3.7.5
STATE DESCRIPTIONS . .
Control Sets
G-Sets • • •
In Use Table
• . .
Single Shift Functions
Environments
3-65
3-65
3-65
3-65
3-66
3-66
3.8
CONTROL OPERATIONS . • . .
3-68
momDomD™
3-18
3-18
3-22
3-23
3-28
3-31
EL-00070-00
VSRM - Introduction
3.8.1
3.8.2
3.8.3
14-Apr-1989
Page 11
Digital Internal Use Only
Announce Subset Of Code Extension
Facilities
Communications Environment
Select 7-Bit Cl Transmission
Select 8-Bit Cl Transmission
Shift Functions
Locking Shift Zero (Shift In)
Locking Shift One (Shift Out)
Locking Shift Two
Locking Shift Three
Locking Shift One Right
Locking Shift Two Right
Locking Shift Three Right
Single Shift Two
Single Shift Three
. .. · · ·· · ·· ·
··
· · ·
· ···
3-68
3-71
·······
· ·· ·
3-73
····
·
· · · ·
· · · ·
3-83
3-83
3-84
3-85
3-86
..·· ··
· · · ··
· ·
· ···
· ·· · ·
DOCUMENTS
·
3.9
3.9.1
3.9.2
3.9.3
3.9.4
CHANGE HISTORY
Revision 0.2 to 0.3
Revision 0.3 to AXI0
Revision AXI0 to AXll
Revision AXl1 to AX12
3.10
REFERENCED
·
·
·
·
· · · ·
· · · ·
3-88
A more detailed Table of Contents is available with each section.
mDmDomD™
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 12
Digital Internal Use Only
CONTENTS
DEC STD 0.70-4 VIDEO SYSTEMS REFERENCE MANUAL TERMINAL MANAGEMENT
CHAPTER 4
.
. . . . 4-4
• • . 4-4
4-5
4.1
4.1.1
4.1.2
INTRODUCTION •
Scope
• . • • .
Relationship To TIA
4.2
TERMINOLOGY
4.3
4.3.1
4.3.2
4.3.3
STATE DESCRI;PTIONS • . .
• . . . . . • . . 4-8
Device Identification
. . • •.
. . 4-8
Terminal State Declarations . • . . . . .
4-10
Status And Test
. • • •
4-16 .
4.4
DEVICE INITIALIZATION
4-17
4.5
CONTROL FUNCTIONS
. • .
Device Attributes (Primary)
...... .
Select Conformance Level . •
Device Attributes (Secondary)
Device Attributes (Tertiary) . . . • .
Identify Terminal . . • . . • . . • .
Secure Reset . . . .
. . . •
Soft Terminal Reset
. . . . . . . .
Device Status Report .
.....•..
4-22
4-22
4-27
4-29
4-31
4-33
4-35
4-37
4-41
4.6
4.6.1
4.6.2
4.6.3
4.6.4
CHANGE HISTORY • • . .
Revision 0.0 To 0.1
Revision 0.1 To AX10 .
Rev AX10 To AX11 .
Rev AX11 To AX12 .
4-44
4-44
4-45
4-46
4-46
4.7
REFERENCE STANDARDS
•
e
•
•
It
. . 4-7
•
,e
•
4-50
A more detailed Table of Contents is available with each section.
~DmDDmDTM
EL-00070-00
VSRM - Introduction
Page 13
Digital Internal Use Only
29-Apr-1988
CONTENTS
CHAPTER 5
DEC STD 070-5 VIDEO SYSTEMS REFERENCE MANUAL CHARACTER CELL DISPLAY
5.1.1
5.1. 2
5.1. 3
INTRODUCTION •
Purpose
. • • .
Scope
• . . • • • •
Relationship To TIA
5.2
5.3
REFERENCE STANDARDS
TERMINOLOGY • . •
.
. 5-9
· 5-9
5.4
5.4.1
STATE DESCRIPTIONS . • ' . • . • • • • . • . .
Display Logic
Active Position And Cursor . • • • . . . .
5-16
5-16
5-16
5.1
5.4.2
5.4.3
5.4.4
5.4.5
5.4.6
5.4.7
5.4.8
5.4.9
5.4.10
.
.
.
.
•
·
.
5-6
5-6
5-6
5-7
•
5~18
Graphic Character Sets .
. . .
Character Renditions
..••
. •.
Character Attributes
. . • . . .
Line Renditions
.•.....
Cursor Save Buffer •
.•.•...•.
Audible Indicator . . • . • . • . . . . .
Horizontal Tabulation . . . . • .
5-21
Mode s
•
.
.
.
.
.
.
.
.
.
.
.
•
.
.
.
.
5-22
5-24
5-25
5-25
5-26
5-26
5.5
STATE SUMMARY
5-27
5.6
SUMMARY OF STATE VARIABLES .
5-29
5.7
5.7.1
INTERNAL
End Of
Scroll
Scroll
5-30
5-30
5-30
5-31
5.7.2
5.7.3
FUNCTIONS AND PROCEDURES
Line
Up
Down
5.8
SCROLLING REGION . . ~ .
Set Top and Bottom Margins
5-32
5.9
CHARACTER SET SELECTION
5-34
5.10
DISPLAY ATTRIBUTES . . .
Select Graphic Rendition
Select Character Attribute
Single width Line
Double Width Line
Double Height Line
5-39
5.11
MODE STATES
Set/Reset Column Mode
Set/Reset Scrolling Mode
Set/Reset Screen Mode
5-47
mDmDomD™.
EL-00070-00
VSRM - Introduction
29-Apr-1988
Set/Reset
Set/Reset
Set/Reset
Set/Reset
Page 14
Digital Internal Use Only
Origin Mode
Insert/Replacement Mode
New Line Mode
Text Cursor Enable Mode
5.12
GRAPHIC CHARACTER INSERTION AND REPLACEMENT
Insert or Replace Graphic Character
5-56
5.13
CURSOR MOVEMENT • • • • • • • • •
Cursor Up
Cursor Down
Cursor Forward
Cursor Backward
Cursor Position
Horizontal/Vertical Position
Cursor Position Report
5-58
CURSOR SAVE AND RESTORE
Save Cursor.
Restore Cursor
5-69
5.15
CONTROL CODES • . • •
warning Bell
Back Space
Horizontal Tab
Line Feed
Vertical Tab
Form Feed
Carriage Return
Substitute
Index
Reverse Index
Next Line
Horizontal Tabulation Set
Tabulation Clear
5-73
5.16
ERASE, DELETE, AND INSERT . . . . . . . . .
Erase Character
Delete CHaracter
Insert Character
Erase in Line
Selective Erase in Line
Delete Line
Insert Line
Erase in Display
Selective Erase in Display
5-87
. 5.14
mDmDomD™
EL-00070-00
VSRM - Introduction
5.17
5.17.1
5.17.2
5.17.3
29-Apr-1988
CHANGE HISTORY . • • •
Rev 0.4 To 0.5 • . .
Revision 0.5 To AX10
Rev AX10 To AX11 . .
Page 15
Digital Internal Use Only
. .
.
.
.
.
.
.
. 5-102
. . . . • • • 5-102
. • . . . • . 5-104
. .
.
.
.
.
.
.
. 5-107
A more detailed Table of Contents is available with each section.
mDmDomD™
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 16
Digital Internal Use Only
CONTENTS
CHAPTER 6
DEC STD 070-6 VIDEO SYSTEMS REFERENCE MANUAL KEYBOARD PROCESSING
6.1
6.1.1
6.1.2
6.1.3
6.1.4
•••••
INTRODUCTION • • • • • •
Keyboard Overview
• • • • • • •
Scope • • • • • • • • • • • • • • •
Relationship To TIA
• • • •
Coding Interface • • • . • .
6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.6
CONFORMANCE REQUIREMENTS • .
Level 1 Conformance Requirements
Level 2 Conformance Requirements
L~vel 3 Conformance Requirements
Level 1 Operation • • • . • • .
Level 2 And Level 3 Operation
Keyboard Character Encoding • •
6.3
REFERENCED STANDARDS AND RELATED PUBLICATIONS 6-23
6.4
TERMINOLOGY
6-25
6.5
6.5.1
6.5.2
6.5.3
PHYSICAL KEYBOARD DESCRIPTION • • • . . • .
Physical Keyboard Map • • • • • . • • • •
Keyboard Map By Logical Key Name .
Recommended Labeling For System Label
6-28
6-28
6-30
strips . . . . .
6.6
6.6.1
6.6.2
6.6.3
6.6.4
6.6.5
6.7
6.7.1
6.7.2
6.7.3
6.7.4
6.7.5
6.7.6
•
•
•
.
•
•
•
.
• • 6-7
• • 6-7
• 6-12
• 6-13
• 6-14
•
•
•
.
. . . . . . . . . . ..
KEYBOARD OPERATION AND STATE THAT AFFECTS
USER INTERACTION . . . . . .
..... .
Keyboard Output Silo . . .
Keyboard Action Mode • . •
Set/Reset Keyboard Action Mode
Auto Repeat Mode . • . . . •
Set/Reset Auto Repeat Mode
Visual Indicators . . . . .
Audible Indicators . • • • .
KEYBOARD STATE AND OPERATING MODES THAT
AFFECT KEYBOARD ENCODING . . . . . . . .
VT52 And VT100 (Level 1) Emulation Mode
VT200 (Level 2.) And VT300 (Level 3)
Emulation Mode • • • . . . • • • . . • . .
C1 Transmission Mode • . • . . . • . . . .
Character Set Mode • . . • . .
....
Set/Reset Character Set Mode
Keyboard Usage Mode
. . . .
Set/Reset Keyboard Usage Mode
Keyboard Dialect . • . .
momDomD™
6-15
6-16
6-17
6~18
6-19
6-20
6-21
6-36
6-37
6-37
6-38
6-40
6-44
6-45
6-48
6-49
6-50
6-50
6-51
6-54
6-58
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 17
Digital Internal Use Only
6.8
6.8.1
6.8.2
CURSOR KEYS
Cursor Key Mode
• • • .
Cursor Key Codes
..••
Set/Reset Cursor Key Mode
6-60
6-60
6-61
6.9
6.9.1
6.9.2
NUMERIC KEYPAD KEYS • • • • • . • •
Keypad Application/Numeric Mode • • •
Enter Key Operation •• . • • • • • •
Set Keypad Application Mode
Set Keypad Numeric Mode
Set/Reset Numeric Keypad Mode
6-63
6-63
6-65
6.10
EDITING KEYPAD KEYS
6-69
6.11
APPLICATION FUNCTION KEYS
6-70
6.12
6.12.1
6.12.2
6.12.3
6.12.4
6.12.5
LOCAL FUNCTION KEYS . ••
Hold Screen Key Operation
Print Screen Key Operation
Set-Up Key Operation • • •
Local Function Key F4 • •
Break Key Operation • . •
6.13
6.13.1
6.13.2
6.13.3
6.13.4
6.13.5
6.13.6
6.13.7
6.13.8
6.13 .• 9
MAIN KEY ARRAY - SPECIAL KEYS AND FUNCTIONS
Control Key Operation
Shift Key Operation
Lock Key Operation .
SPACE Bar Operation
Return Key Operation •
Tab Key Operation •
Delete Key Operation
Compose Key Operation . . . . . . • .
Non-Spacing Diacritical Keys .
6-75
6-75
6-77
6-77
6-79
6-79
6-80
6-80
6-80
6-80
6.14
6.14.1
MAIN KEY ARRAY - GRAPHIC CHARACTER KEYS
North American Keyboard (LK201-EE US/UK,
LK201-NA, LK201-AA)
.•.....
British Keyboard (LK201-EE US/UK)
British Keyboard (LK201-AE)
..•
Flemish Keyboard (LK201-AB)
...
Canadian (French) Keyboard (LK201-AC)
Danish Keyboard (2nd, LK201-ED)
•••
Danish Keyboard (1st, LK201-AD)
. . .
Finnish Keyboard (3rd, LK201-NX) . . . . .
Finnish Keyboard (2nd, LK201-NF) .
Finnish Keyboard (1st, LK201-AF).
..
Austrian/German Keyboard (2nd, LK201-NG) .
Austrian/German Keyboard (1st, LK201-AG) .
Dutch Keyboard (2nd, LK201-NH) . .
..
Dutch Keyboard (1st, LK201-AH) . .
..
Italian Keyboard (LK201-AI)
.......
Swiss (French) Keyboard (LK201-AK) . . . .
Swiss (German) Keyboard (LK201-AL) . . . .
6-81
6.14.2
6.14.3
6.14.4
6.14.5
6.14.6
6.14.7
6.14.8
6.14.9
6.14.10
6.14.11
6.14.12
6.14.13
6.14.14
6.14.15
6.14.16
6.14.17
•
•
•
•
•
•••••
• • • • •
• • • • •
• • • • •
•
•
6-72
6-72
6-73
6-73
6-73
6-74
6-83
6-85
6-87
6-89
6-91
6-93
6-95
6-97
6-99
6-101
6-103
6-105
6-107
6-108
6-110
6-112
6-114
EL-OO'070-00
VSRM - Introduction
Page 18
Digital Internal Use Only
29-Apr-1988
Swedish Keyboard (2nd, LK201-NM) • • • • •
Swedish Keyboard (1st, LK201-AM) ••
•
Norwegian Keyboard (2nd, ~K201-EN) • • • •
Norwegian Keyboard (1st, LK201-AN)
Belgian/French Keyboard (LK201-AP).
.
Spanish Keyboard (LK201-AS).
• •••
Portuguese Keyboard (LK201-AV) •
•••
DECmate/WPS Main Key Array • . • • • • • •
6-116
6-118
6-120
6-122
6-124
6-126
6-128
6-130
COMPOSE OPERATION
• . • • • • • • • • •
Compose with The Use Of The COMPOSE Key •
Compose With The Use Of Non-Spacing
Diacritical Marks • • • • • • . • • • • •
Composing Arbitrary 8-bit Characters
6.15.3
(VT330/340 Only, Not Mandatory) • • . . .
Use Of The COMPOSE Key When A Compose Is
6.15.4
Already In Progress • • • • • • • • • • •
Use Of The DELETE Key When A Compose Is
6.15.5
Already In Progress • • • • • • • • . . •
6.15.6
Keystrokes .Which Abort Compose Immediately
6.15.7
Keystrokes Which 00 Not Affect Compose
Directly • • • • • • • • • • • • • • • • •
6.15.8
Order And Case Within Compose Sequences .
6.15.9
Composition Conventions • • • • • • • • •
6.15.10
8-bit Characters Mode Valid Compose
Sequences • . . . • • • • • • • • • • • •
6.15.11
7-bit Characters Mode Valid Compose
Sequences • • • . • • . • • • .
. • •
6-134
6-134
6.14.18
6.14.19
6.14.20
6.14.21
6.14.22
6.14.23
6.14.2.4
6.14.25
6.15
6.15.1
6.15.2
6-135
6-136
6-138
6-138
6-139
6-140
6-140
6-141
6-149
6-157
6.16
CONTROL CODES AND KEYSTROKES .
• 6-170
6.17
SUMMARY OF MODES . . • • .
• 6-172
6.18
6.18.1
6.18.2
6.18.3
6.18.4
6.18.5
CHANGE HI&TORY . . . •
Revision 0.0 To 0.1
Revision 0.1 To 0.2
Revision 0.2 To AX10
Revision AX10 To AX11
Revision AX11 To AXl2
. . .
.
. .
.
.
· 6-173
. 6-173
. . . . . 6-176
· 6-179
. • . . . . . • . . 6-181
.
. . .
. .
. .
.
. 6-183
A more detailed Table of Contents is available with each section.
mDmDomD™
EL-00070-00
VSRM - Introduction
Page 19
Digital Internal Use Only
29-Apr-1988
CONTENTS
CHAPTER 7
7.1
7.2
7.3
7.3.1
7.3.2
7.3.3
7.3.4
7·.3.5
7.3.6
7.3.7
7.3.8
7.3.9
7.3.10
7.3.11
7.4
7.4.1
7.4.2
7.4.3
7.5
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6
7.5.7
7.5.8
DEC STD 070-7 VIDEO SYSTEMS REFERENCE MANUAL PRINTER PORT EXTENSION
. • • . . . • 7-5
INTRODUCTION • • . . • • • .
TERMINOLOGY . . • . • • • . • • • • • • • . • 7 - 5
STATE DESCRIPTIONS . • . . .
. • • 7-6
Printer Port Flow Control
. . . 7-6
Printer Port Status . • .
...
. . 7-8
Printer Port Status On Virtual Terminals . . 7-9
Printer Port Communications Environment
7-9
Printer To Host Communications .
. . . . 7-9
Printer Controller Mode
. • • . . . . .
7-10
Auto Print Mode
7~11
Print Form Feed Mode . . .
7-12
Print Extent Mode
o.
7-12
Local Controller Mode (Not Mandatory)
7-12
Printer Style
7-13
TRANSMITTING PRINT DATA
7-13
National Replacement Character Sets . . . 7-18
Display Attributes . . .
7-19
-Trailing Spaces
.
7-19
FALLBACK PRESENTATION OF GRAPHIC CHARACTERS
7-20
NRC Fallbacks
7-20
DEC Special Graphics Fallbacks . . .
7-20
DEC Supplemental Fallbacks
7-21
ISO Latin-l Supplemental Fallbacks .
7-23
DEC Technical Character Set Fallbacks
7-25
DRCS Fallbacks
7-28
User Preference Supplemental Set Fallbacks 7-28
Control Representation Mode Fallbacks (Not
Manda to ry) .
7-28
PRINT OPERATIONS
7-30
Print Page Or Scrolling Region
7-30
·Print Screen (Not Mandatory).
.
7-30
Print All Pages (Guideline)
. . . . . . . 7-30
Print Line
..
7-31
CONTROL FUNCTIONS
. . . . .
. . . .
7-32
GRAPHICS PRINTING . . . . . . .
7-58
Graphics Print Operations
. . .
7-58
Sixel Printing . . .
7-58
CHANGE HISTORY . . . .
. . . . .
7-65
Revision 0.0 To AX10 .
. .....
7-65
Rev AXIO To AXll .
. . . .
7-65
Rev AXll To AX12 . .
...
7-65
0
0
0
•
•
0
•
0
0
0
•
0
0
•
0
0
0
0
•
0
•
•
0
0
• • •
0
•
0
0
0
0
0
0
0
0
0
•
0
.0
•
•
•
0
• • • •
•
•
•
•
0
0
0
0
•
•
0
0
0
0
•
0
••
0
0
•
0
0
•
0
•
0
0
7.6
7.6.1
7.6.2
7.6.3
7.6.4
7.7
7.8
7.8.1
7.8.2
7.9
7.9.1
7.9.2
7.9.3
0
0
0
•
0
0
0
0
•
0
0
•
0
•
0
•
•
•
•
•
•
•
•
•
0
•
•
0
•
•
•
•
•
•
•
•
•
•
•
•
•
0
• •
0
•
•
••
0
•
•
•
• • •
0
•
•
0
•
•
A more detailed Table of Contents is available with each section.
mDmDomD™
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page -20
Digital Internal Use Only
CONTENTS
CHAPTER 8
8.1
8.1.1
8.1.2
8.1.3
8.1.4
8.1.5
8.1.6
8.1.7
8.1.8
DEC STD 070-8 VIDEO AND PRINTER STANDARDS
REFERENCE MANUAL - REGIS GRAPHICS' EXTENSION
INTRODUCTION • • • • • • •
Purpose • • • • • • • •
Scope
• . • • • • • • .
8-10
8-10
8-10
8-10
. .. • .
Implementation of ReGIS
Reference Standards and Related
Publications • . • . • . • .
Terminology • • • . • . • •
Modeling the Graphics System
Range of Intended Devices
• • •
ReGIS Overview • • • • • • • • •
.'
8-11
8-12
8-15
8-19
8-20
8.2
8.2.1
8.2.2
8.2.3
ReGIS PHILOSOPHY • • • • • •
Transportability Concepts • • •
Syntax Considerations • • .
Semantic Considerations
8-22
8-22
8.3
8.-3.1
8.3.2
8.3.3
BASE LOGICAL GRAPHIC DEVICE
Viewing Area Definition
Viewing Point Attributes •
General Drawing Process
8-32
8.4
8.4.1
ReGIS GENERAL SYNTAX
.•..••••••
Alphabet • • • . . • • • . • • • • • •
General Grammar • . • • . • • .
...
Argument Types • • • . • . • .
. . .
Macrograph Strings • . • . .
.....
Position Arguments . . . . . . . • . .
Extensibility Requirements .
• ..
8.4.2
8.4.3
8.4.4
8.4.5
8.4.6
8.5
8.5.1
8.5.2
8.5.3
8.5.4
8.5.5
8.5.6,
8.5.7
8.5.8
8.6
8.6.1
8.6.2
8.6.3
8.6.4
8.6.5
mDmDomD™
8-29
8-31
8-33
8-35
8-36
8-37
8-37
8-39
8-43
8-49
8-52
8-56
BASE ReGIS INSTRUCTIONS
8-58
Screen Instruction . . . • . . . • . . . . 8-58
Position Instruction • • .
8-67
writing Attributes Instruction
. . . 8-69
Vector Instruction
. . • • • . • • 8-73
. . . 8-74
Curve Instruction . . . . • •
Text Instruction . . . . . .
· . . . 8-81
Report Instruction
.•..
8-87
Fill Instruction .
.•....
8-90
THE EXTENDED LOGICAL GRAPHICS DEVICE
Dimensional Displays
. . .
Gray Scale and Color • . . . •
Text Attributes . . . . . . . . .
Area Attributes
. . •
Dynamic Attributes .
. . .
. . • •
. • . .
8-95
8-95
8-95
· • . . 8-100
· . . . 8-102
. . 8-102
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 21
Digital Internal Use Only
8.7
8.7.1
8.7.2
8.7.3
8.7.4
8.7.S
REQUIRED EXTENSIONS FOR RASTER DEVICES • • •
Screen Instruction • . • • ••
••••
Writing Attributes Instruction
•••
Text Instruction
•••.•••••.••
Report Instruction
•••••
• .
Load Character Set Instruction
. •
8-103
8-104
8-107
8-112
8-118
8-119
8.8
8.8.1
8.8.2
8.8.3
8.8.4
8.8.S
8.8.6
OPEN EXTENSIONS TO ReGIS • . • •
• •
Screen Instruction • • • • • • • • • • • •
Position Instruction • • • • •
• •
Writing Attributes Instruction
• •
Text Instruction . • • • • . • • • • . . .
Report Instruction
• • • • •
Flood/Fill Instruction •
•..
•.
8-122
8-122
8-131
8-132
8-134
8-135
8-138
8.9
8.9.1
8.9.2
INSTALLATION ENVIRONMENTS
ANSI Encoding • • • • •
Bounded Systems • • • •
8.10
8.10.1
8.10.2
8.10.3
8.10.4
8.10.S
8.10.6
8.10.7
8.10.8
8.10.9
ReGIS COMMAND COMPLEMENT •
• • • • .
Screen Instruction • . .
• • . . •
Position Instruction • •
• ••..•.
Writing Attributes Instruction . • . • . •
Vector Instruction •
. • • ..
Curve Instruction • • •
•••
.•
Text Instruction • • • •
.•.
••
Report Instruction • • •
••••.••
Fill/Flood Instruction • .
Load Character Set Instruction . • . . • .
• • • • • 8-143
. 8-143
• • • . . 8-145
8-146
8-147
8-148
8-149
8-150
8-151
8-152
8-153
8-154
8-155
A more detailed Table of Contents is available with each section .
mDmDomD™
•
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 22
Digital Internal Use Only
CONTENTS
DEC STD 070-9 VIDEO AND PRINTER SYSTEMS REFERENCE
MANUAL - SIXEL GRAPHICS EXTENSION
CHAPTER 9
9.1
9.1.1
9.2
9.3
9.4
9.4.1
9.4.2
9.4.3
9.5
9.6
9.6.1
9.7
9.7.1
9.7.2
9.7.3
9.8
9.8.1
9.8.2
9.9
9.9.1
9.9.2
9.9.3
9.9.4
9.10
9.11
9.11.1
9.11.2
9.11.3
9.12
9.13
9.13.1
9.13.2
9.13.3
9.13.4
9.14
9.14.1
INTRODUCTION • • • • • • • • • • • • • • • • • 9-4
Overview . . . . . . . . . . . . . . . . . . 9-4
GOALS OF THE SIXEL PROTOCOL • • • • • • • • • 9-5
TERMINOLOGY • • •
••
• • • • 9-6
LEVELS AND EXTENSIONS • • • .
• • • • • • 9-7
Levell. • • • . • • • • . • •
• . 9-8
Level 2 • • • • •
• • • • • • • 9-8
Extension - Color • • • • •
•••
• 9-8
SIXEL PRINTING . • • • • • • • • • • • • •
9-9
PROTOCOL STRUCTURE • • • • • • • • • • • • • • 9-9
Sixel Control String • . • • • . • • • • • 9-10
FORMATING INFORMATION
• . • . • . • 9-12
Macro Parameter
• . • . • • • . • • • 9-12
Background Select • • • • •
• • • 9-12
Horizontal Grid Size
• • • • •
9-13
PICTURE DEFINITION • • • . .- .
• • • 9-13
Sixel Commands .
.. • •
.••
9-13
Sixel Data • • • • • . • • • • • • • • • • 9-21
CODING ISSUES
• • • • • • •
9-25
CO Codes • • • • • • • • • • • • • • • • • 9-25
GL Codes • ••
• • • • • . • • • • • • 9-25
C1 Codes • • •
• • • • . . • • . • . • 9-25
GR Codes • • • • . . . • • . . • • . • . . 9-25
INITIAL STATES • • • • .
• • • •
9-26
ANSI TEXT INTERACTIONS . . • . •
9-26
Entering Sixel Mode
• . • . . • . . . • • 9-26
While In Sixel Mode
. . • . . . . • .
9-27
Exi ting Sixel Mode .
. . . . .
9-28
FALLBACK . . . • •
. . . . . . • . • . . 9-28
DEVIATIONS • .
. . • . • . • . .
9-31
VT125 . • •
. • • • • • . • .
9-31
VT240 . . •
• • .
9-31
LASO
•
•
•
•
.
•
•
.
.
•
•
•
.
LA100 And LA210
• •.
..•.
CHANGE HISTORY . • . . . . • .
••.
Revision AXIl To AX12
. . . .
•
.
9-32
9-32
9-33
9-33
A more detailed Table of Contents is available with each section.
mDmDomD™
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 23
Digital Internal Use Only
CONTENTS
DEC STD 070-10 VIDEO SYSTEMS REFERENCE MANUAL DYNAMICALLY REDEFINABLE CHARACTER SETS EXTENSION
CHAPTER 10
10.1
INTRODUCTION .
10-4
10.2
TERMINOLOGY
10-5
10.3
10.3.1
10.3.2
10.3.3
10.3.4
10.3.5
FUNCTIONAL DESCRIPTION . . . . . . .
Loading Fonts . . . . . . • .
Associating Fonts With Character Sets
Designating And Invoking· Fonts .
Note On Future Use Of Fonts
Cell Matrix Size, Set Size, And Font Usage
10-6
10-6
10-6
10-6
10-6
10-7
10.4
10.4.1
10.4.2
10.4.3
10-8
CONTROL FUNCTIONS . • . . • .
Down Line Load (Font)
Introducer Sequence Format .
. . . . . 10-10
Command String Format
· . . . . . . 10-lS
Algorithm . . . . . . . . . .
. . 10-20
10.5
10.5.1
10.5.2
10.5.3
ORCS FONT
Example
Example
Example
10.6
10.6.1
10.6.2
10.6.3
CHANGE HISTORY
.....
· . . ..
Revision 0.0 To Ax10
. . . .
Rev AX10 To AX11
.....
. .
Rev AX11 To AX12 . . .
.
LOADING EXAMPLES . . .
....
One
· . . . . • .
Two
. .
Three
· ......
10-28
10-28
10-29
10-30
10-31
. 10- 31
. 10-31
. 10-31
A more detailed Table of Contents is available with each section.
~DmDDmDTM
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 24
Digital Internal Use Only
CONTENTS
CHAPTER 11
DEC STD 070-11 VIDEO SYSTEMS REFERENCE MANUAL USER DEFINABLE KEYS EXTENSION
11.1
INTRODUCTION .
11-4
11.2
11.2.1
11.2.2
11.2.3
11.2.4
FUNCTIONAL DESCRIPTION • • • . . . • . . . .
Programmable Keys
. • . . . . . • . .
Default Definitions . • .
Key Definitions . . . •
Lock Contro~ . • .
..•.
11-5
11-5
11-5
11-5
11-6
11.3
11.3.1
11.3.2
11.3.3
11.3.4
CONTROL FUNCTIONS • . • . • •
11-7
Report UDK Status
User Defined Keys
Introducer Sequence Format .
. • . . . 11-11
Command String Format . . . . . • . . • . 11-13
Error Conditions . • • . • . . . . .
. 11-15
Algorithm . . . . . . . . .
. . . . . 11-16
11.4
UDR KEY DEFINITION EXAMPLES
11.5
11.5.1
CHANGE HISTORY
. . • . • .•
. . 11-23
Revision 0.0 To AX10 . . . .
. . • . . 11-23
. . 11-22
A more detailed Table of Contents is available with each section.
~DmDamDrM
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 25
Digital Internal Use Only
CONTENTS
CHAPTER 12
12.1
12.1.1
12.1.2
12.2
12.2.1
12.2.2
12.2.3
12.2.4
12.2.5
12.2.6
12.2.7
12.2.8
12.2.9
DEC STD 070-12 VIDEO SYSTEMS REFERENCE MANUAL TERMINAL SYNCHRONIZATION
INTRODUCTION • . • • • • • • •
.••
Scope
• . • • •
. • •
Relationship To TIA
. • . . • • • ..
XON/XOFF FLOW CONTROL . • .
••••
Protocol • • . . . . .
. . . . . •.
XON And XOFF Points . . . .
.....
Receive Buffer Size
. . . . . . .
Buffer Overflow Prevention • . . . . • . .
Initialization • • • • • • • . . . . . . .
Other Events That Affect XON/XOFF State .
Reserved Characters . . • . . . • . • . .
Terminal Keyboard Synchronization • • . .
Terminal Screen Synchronization (Hold
Screen)
•....••.
. ...
·
12.2.10
Emergency Messages .
. . . . • .
Implied XOFF Rule
. . . .
12.2.11
·
BREAK • • • . . . .
. . . . ·
12.3
The Break Signal .
. . .
12.3.1
·
When Break May Be Transmitted . . .
12.3.2
·
Operation Of The Break Key .
. . .
12.3.3
12.3.4
Receipt Of Break . . . . . . . . . .
·
12-4
12-4
12-4
12-4
12-4
12-7
12-8
12-8
12-11
12-11
12-12
12-12
12-12
12-13
12-13
12-14
12-14
12-15
12-15
12-15
A more detailed Table of Contents is available with each section.
EL-00070-00
VSRM - Introduction
29-Apr-l988
Page 26
Digital Internal Use Only
CONTENTS
APPENDIX A
DEC STD 070-0A VIDEO SYSTEMS REFERENCE MANUAL VTS2 EMULATION
A.l
A.l.l
A.l.2
INTRODUCTION
Purpose
Scope
A.2
A.2.l
A.2.2
A.2.3
STATE DESCRIPTIONS
Display • • • •
Active Position
Ta~ Stops, Fixed
A.3
PARAMETERS AND CONSTANTS
A.4
SUMMARY OF STATE VARIABLES •
A.S
A.S.l
A.S.2
A.s.3
A.s.4
A.s.S
A. 5.6
COMMAND SUMMARY • • • • • • • .
Required Commands . • . • • •
Character Set Extension . . •
VTs2 Printer Port Extension •
ANSI Printer Port Commands •
Undefined Functions • . ••
Programming Guidelines • . • .
A.6
GRAPHIC CHARACTER REPLACEMENT
Replace Graphic Character
A-l2
A.7
CONTROL FUNCTIONS . . • . .
Identify
Enter VTS2 Emulation Mode
Exit VTs2 Emulation Mode
Enter Alternate Keypad Mode
Exit Alternate Keypad Mode
Enter Graphics Mode
Exit Graphics Mode
Cursor Up
Cursor Down
Cursor Right·
Cursor Left
Cursor Home
Direct Cursor Address
Back Space
Horizontal Tab
Line Feed
Carriage Return
Reverse Line Feed
Erase To End of Line
Erase To End of Display
A-l3
mDmDomD™
. . . . . A-S
. . .
. . A-S
. . . . . . . A-S
•
• • • • •
• • •
•
·
·
·
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
A-6
A-6
A-7
A-7
A-8
•. A-8
• • • •
• A-9
.
A-9
• • • •
· A-9
• . . • . . · A-9
• • • • . A-lO
•••
A-ll
. • • . A-Il
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 27
Digital Internal Use Only
A.8
A.8.l
EXTENSIONS TO THE VT52 EMULATION ARCHITECTURE A-36
Print Functions . . . • . • • • • . • • • A-36
Enter Auto Print Mode
Exit Auto Print Mode
Enter Printer Controller Mode
Exit Printer Controller Mode
Print Cursor Line
Print Screen
A.9
A.9.l
A.9.2
CHANGE HI STORY • . . . . • . . . . . . • . •
Revision 0.3 To Rev 1.0 . . . • • . . . .
Rev AX10 To Axll ". . . . .
A-43
A-43
A-44
A more detailed Table of Contents is available with each section.
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 28
Digital Internal Use Only
CONTENTS
APPENDIX B
DEC STD 070-0B VIDEO SYSTEMS REFERENCE MANUAL PROGRAMMER'S GUIDE
B.1
B.1.1
INTRODUCTION
Scope
B.2
B.2.1
GENERAL PROGRAMMING GUIDELINES •
. • • B-6
Levels Of Abstraction
• • • • . • . • • B-6
B.3
B.3.1
COMMUNICATION CONTROLS
Text Attributes
B.4
B.4.1
B.4.2
CONTROL CODE EXTENSION TECHNIQUES • • .
• B-9
Designing Control Sequences • • • • • • . • B-9
Termiria1 Initialization • • • • . • . • . B-10
B.s
8.5.1
B.s.2
B.5.3
B.5.4
TERMINAL MANAGEMENT
Device Identification
Device Control
.•.
Device· Status And Test
Text Cursor Enable Mod~s
B-13
B-13
8-13
B-15
8-15
B.6
LOCAL FUNCTIONS
B-16
B~7
SYNCHRONI~ING
8-16
8-16
B-16
ReGIS GRAPHICS PROGRAMMING . . . . .
Syntax • • • . . • . •
The Writing Command
Screen Instruction . • • . . . . . • .
Macrographs • . . . . .
Macrograph Constructs
Macrograph Invocation
Macrograph Storage
Macrograph Utility . • . • • • . . • .
The Text Command
Color Mapping . . • .
Integration Of Graphics And Text .
8-17
8-17
8-21
8-25
8-26
8-26
8-27
8-27
8-28
8-34
8-39
8-40
B.7.1
B.• 7.2
8.8
B.8.1
8.8.2
B.8.3
B.8.4
8.8.5
B.8.6
B.8.7
B.8.8
B.8.9
8.8.10
B.8.11
..........
• • • B-5
THE APPLICATION AND TERMINAL
Auto Repeat • • • • • • . . • . •
Typing Ahead
..••.•
· B-s
• B-8
· B-8
A more detailed Table of Contents is available with each section.
mDmDomD™
EL-00070-00
VSRM - Introduction
Page 29
Digital Internal Use Only
29-Apr-l988
CONTENTS
APPENDIX C
DEC STD 070-0C VIDEO SYSTEMS REFERENCE MANUAL
PRODUCT REFERENCE
C.l
PRODUCT/ARCHITECTURE MATRIX
C.2
RAINBOW lOOA COMPUTING TERMINAL /
C.3
DECMATE II WORD PROCESSING STATION /
20-JAN-83 . . . . . . . . . . . . .
C-l2
C.4
PROFESSIONAL COMPUTING TERMINAL /
C-l9
C.s
VT240/VT24l TERMINAL /
C.6
VAXSTATION WORKSTATION /
C.7
VT220 VIDEO TERMINAL /
. C-4
07-JAN-83
20-APR-83
l4-NOV-83 . •
lO-JUL-84
27-0CT-84 .
. C-S
C-26
C-33
.
C-39
A more detailed Table of Contents is available with each section.
'~D~DDmDTM
EL-00070-00
VSRM - Introduction
29.-Apr-1988
Page 30
Digital Internal Use Only
CONTENTS
APPENDIX 0
DEC STD 070-00 VIDEO SYSTEMS REFERENCE MANUAL DOCUMENTED EXCEPTIONS
0.1
INTRODUCTION • •
0.2
RESET TO INITIAL STATE
0.3
0.3.1
0.3.2
ANSWERBACK • . . • . . •
Description • •
Control Function • .
0.4
DEVICE TEST AND STATUS •
0.5
SEND/RECEIVE MODE
0-12
0.6
0.6.1
0.6.2
AUTO WRAP MODE • .
Description
Control Function
0-13
0-13
0-15
0.7
0.8
CONTROL REPRESENTATION MODE
SCREEN ALIGNMENT • • •
0-16
0-18
0.9
LOCAL FUNCTION KEYS
0-20
0.10
0.10.1
CHANGE HISTORY . • •
Rev AX10 To AX11 .
0-22
0-22
• 0-4
. • 0-5
· 0-9
· 0-9
0-10
...
0-11
A more detailed Table of Contents is available with each section.
momDomD™
EL-00070-00
VSRM - Introduction
5
29-Apr-1988
Page 31
Digital Internal Use Only
REFERENCED DOCUMENTS
The following corporate, national, and international standards
apply to the interfaces defined within DEC STD 070 and are
referenced herein.
Digital Standards
EL-00052-00
DEC STD 052-0 Operational Requirements
for Serial Terminals and Computer
Interfaces Operating as DTEs Connected
to EIA RS-232-C or CCITT V.28 Modems
EL-00052-01
DEC STD 052-1 Operational Requirements
for Serial Terminals and Serial System
Interfaces Operating as DTEs Connected
to EIA RS-232-C or CCITT V.28
EL-00070-01
DEC STD 070-1 Video Systems Reference
Manual - Concepts and Conformance Criteria
EL-00070-05
DEC STD 070-5 Video Systems Reference
Manual - Ch.racter Cell Display
EL-00070-06
DEC" STD 070-6 Video Systems Reference
Manual - Keyboard Processing
EL-00070-07
DEC STD 070-7 Video Systems Reference
Manual - Printer Port Extension
EL-00107-00
DEC STD 107-0 Ditigal Standard for
Terminal Keyboards - Standard Keyboard
Layouts
EL-00138-00
DEC STD 138-0 Registry of Control
Functions for Character-Imaging Devices
EL-00169-00
DEC STD 169-0 DEC Standard Coded
Graphic Character Sets for Hardware
and Software
Copies of Digital Standards Can be obtained from Standards and
Methods Control, $ VTX SMC, JOKUR::SMC, DTN 287-3724, or CTS1-2/D4.
Please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.
mDmDomD™
EL-00070-00
VSRM - Introduction
29-Apr-1908
paqe 32
Diqital Internal Use Only
other Diqital Documents
A-SP-LK200-A-0
A-SP-LK201-A-2
LK200 Functional Specification
LK201 Keyboard Desiqn Specification
~pecifications
are available from any Microfilm Reference File
(35mm aperture "tub").
ANSI And ISO Standards
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I.
I
I
I
I
ANSI X3.4 - 1986
American National Standard Code for
Information Interchange (ASCII character
set)
ANSI X3.41 - 1974
American National Standard Code Extension
Techniques for use with the 7-Bit Coded·
Character Set of the American National
Standard Code for Information Interchange
ANSI X3.64 - 1979
Additional Controls for use with American
National Standard Code for Information
Interchange·
ANSI X4.23 - 1982
Keyboard Arrangement for Alphanumeric
Machines
ANSI ·X3.122-1986
(IS8632-l986)
Computer Graphics Metafile
ANSI X3.124-1985
(IS7942-1985)
Graphical Kernel System (GKS)
dpANS X3.134.1-1985
8-bit ASCII Structure and Rules
dpANS X3.134.2-1985
7-bit and 8-bit ASCII Supplemental'
Multinational Graphic Character Set
ISO 646
Information Processing /
7-Bit Coded Character Set
for Information Interchange
ISO 2022:1986
Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques
mDmDomD™
EL-00070-00
VSRM - Introduction
29-Apr-1988
Page 33
Digital Internal Use Only
ANSI AND ISO STANDARDS (Continued)
ISO 6429:1988
Information processing I
Control Functions for Coded Character Sets
(unnumbered)
ISO Register of Coded Character Sets
for Use with Escape Sequences
ISO 8859-1:1987
Information Processing I
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1;
Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries and the American National Standards Institute,
1430 Broadway, New York, NY 10018, telephone (212) 354-3300 X479.
~DmDDmDTM
EL-00070-00
VSRM - Introduction
mDmDomD™
29-Apr-1988
Page 3~
Digital Internal Use Only
EL-00070-00
VSRM - Introduction
14-Apr-1989
Page 35
Digital Internal Use Only
+-------------------------------------------------------------------+
READER COMMENTS
I
I
Your comments and suggestions will help Standards and Methods I
Control improve their services and documents.
I
+------>-------------------------------------------------------------+
Did you request this document?
satisfactory period of time?
If so, did it arrive within a
Please comment.
What are your impressions of this document?
Consider
organization, completeness, readability, and illustrations.
format,
- -- -- -- -- -- -- -- -- -- FOLD ON THIS LINE -- -- -- -- -- -- -Did you find technical or clerical errors in this document? If so,
please specify the page number(s) and the error(s).
Are the instructions for the update package clear?
Do you have other suggestions for improving this document?
The following information is optional:
Name
Mailstop
Department
Node
Send your comments to JOKUR::PROJECTS, or fold, staple, and send this
page through interoffice mail to:
+-------------------------------+
I
READERS' COMMENTS
I
I STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4
I
+-------------------------------+
~DmDDmDTM
mamDomD™ '
-
-----_._-_._------- -
----
~
VSRM Concepts and Conformance Criteria "EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
Page 1-1
VIDEO SYSTEMS REFERENCE MANUAL
Concepts and Conformance Criteria
Document Identifier: A-DS-EL00070-01-0 Rev. AXlO, l5-May-1983
ABSTRACT: This section describes the conformance requirements for
devices implementing the Video Systems and intending to be
certified as conforming implementations.
APPLICABILITY: SARA Formal Cross-Component Standard.
Mandatory
for
Engineers designing hardware for terminal products and
Software Engineers designing programs using terminal interfaces.
STATUS:
FOR REVIEW ONLY
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
This document has been placed in the SARA "Formal
Cross-Component Standard" category. The material contained
within this document is assumed to define mandatory standards
unless it is clearly marked as· (a) not mandatory or
(b) guidelines. Material which is marked as "not mandatory" is
considered to be of potential benefit to the corporation and
should be followed unless there are good reasons for
non-compliance. "Guidelines" define approaches and techniques
which are considered to be good practice, but should not:be
considered as requirements. The procedures for modifying or
evolving this standard are contained within "the contents of
this document.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
FOR INTERNAL USE ONLY
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
Page 1-2
TITLE: VIDEO SYSTEMS - CONCEPTS AND CONFORMANCE CRITERIA
DOCUMENT IDENTIFIER: A-DS-EL00070-0l-0 Rev. AXIO , lS-May-l983
REVISION HISTORY: Original Draft
Revision AXOI
FILES: User Documentation
25-Dec-1982
28-Feb-l983
EL070S1.mem
Internal Documentation EL070S1.rno
EL070Sl.rnt
EL070S1.rnx
Document Management Group: Terminal Interface Architecture
Responsible Department: Video Architecture Group
Responsible Individual: Peter Sichel
ACCEPTANCE: This document has been app-roved by the Manager of the
Video Architecture Group based on a_comprehensive review of its
individual sections by the members of the SARA - component groups
working Terminal Interface Architecture issues.
The list of
individuals on the review and approval list are on file in
Standards and Methods Control.
Direct requests for further information
PK03-1/10C, DTN 223-5162, RANI::VIDARCH
to
Peter
Copies of this document can be ordered from:
Standards and Methods Control
APOl/F7, DTN 289-1414, JOKUR::SIMONETTI
Sichel,
VSRM Concepts and Conformance Criteria"~·:·EL-00070-01
*** COMPANY CONF - DEC 'Internal Use Only 15-May-1983
Page 1-3
CONTENTS
CHAPTER 1
CONCEPTS AND CONFORMANCE CRITERIA
1.1
INTRODUCTION
1.2
STRUCTURE OF THE MANUAL
. • 1- 5
• 1-5
1.3
ARCHITECTURAL STRUCTURE
• . . . . . • • • 1-8
1. 3.1
Virtual Terminals
• • .
• • 1-8
1. 3.2
Layers. . . . . . . .
. ri •
•
•••
1-8
1.3.2.1
Code Extension Layer • .
••.
. • 1-9
1.3.2.2
Presentation Service Class . . . . . . • . 1-9
1.3.2.3
Input Processing..
• • • . . • . • 1-10
1.3.2.4
Terminal Management
. . • . • . • • 1-10
1. 3.3
Service Classes
. • • . . • . • .
1-10
1.4
SCOPE
1-11
1.5
ARCHITECTURAL CONFORMANCE
1-12
1.5.1
Definitions
••••.••
1-12
1.5.1.1
Leve 1 s • •
. •.
.•...•
1-12
1.5.1.2
Extensions
.•••••.••
1-12
1.5.1.3
Exceptions
.••
. • . . . • 1-13
1.5.1.4
Exclusions
.•.••
..•.
1-13
1.5.1.5
Waivers
• ..
. ....... .
1-13
1.5.1.6
Deviations .
•.•.•
. . .
1-14
1.5.1.7
UNDEFINED Operations
•..
. . . 1-14
1. 5.2
User Preference Features •
. • . . . . 1-14
1. 5.3
Rules For Conformance
. . • .
1-15
• 1-15
1.5.3.1
Hardware/Firmware Conformance ! . .
1.5.3.1.1
Level s . . . . . . . .
....
1-15
1.5.3.1.2
Extensions . . . .
• • • •
1-16
1.5.3.1.3
Exceptions . . . .
~.....
1-16
1.5.3.2
Software Conformance .
.••
1-16
1.5.3.2.1
Levels . . .
. . . . . . . . . . . 1-16
1.5.3.2.2
Extensions . • .
1-17
1.6
LEVEL 1 CONFORMANCE
1. 6.1
Conforming Products
. . •
1. 6.2
Required Functions . • • . • . • • • . . .
1. 6.3
Extensions To L e v e l l . . • . . .
1.6.3.1
Identification And Conformance
.••
1.6.3.2
Editing Controls . • • .
. .••
1.6.3.3
132-Column Mode
• • • . . . • . • . . •
1.6.3.4
Printer Port . . . . . .
....•.
1.6.3.5
ReGIS Graphics Display . . . • • . . . •
1.6.3.6
Sixel Protocol . . . .
.•.••
1.6.3.7
Katakana Character Set .
. •..
1.6.4
Level 1 User Preference Features • . . • .
1-17
1-17
1-18
1-20
1-20
1-20
1-20
1-20
1-21
1-21
1-21
1-22
Page 1-4
VSRM Concepts and Conforman~e Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
1.7
LEVEL 2 CONFORMANCE . . . • . • . . . • . •
1.7.1
Conforming Products • . • • • . . . . . •
1.7.2
Required Functions • .
.......•
1.7.3
Extensions To Le~el 2 . . . . . .
1.7.3.1
132-Co1umn Mode
.•..•.
1.7.3.2
Printer Port . . • • • . • • • . • •
1.7.3.3
ReGIS Graphics Display . • • •
•..
1.7.3.4
Sixe1 Protocol . . • . • • • •
•..
1.7.3.5
Katakana Character Set . . . .
• . •
1.7.3.6
Selectively Erasable Characters • . . •
1.7.3.7
ORCS (Dynamically Redefinab1e Character
Se t )
1.7.3.8
1.7.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
UDK (User Defined Keys)
.•.
Level 2 User Preference Features . .
. . .
..
1-23
1-23
1-23
1-23
1~24
1~24
1-24
1-24
1-24
1-24
1-24
1-24
1-25
1.8
CERTIFICATION
.
1.8.1
Certification Test Process . . . • . . . .
1.8.2
The Waiver Process . • • . . . • • . • • .
1.8.2.1
General Information . . . . . • . .
1.8.3
Resolution Of Open Issues • • .
..•
1.8.3.1
Results Of The Waiver Process
...
1-26
1-27
1-28
1·28
1-28
1-29
1.9
1.9.1
1-30
1-30
CHANGE HISTORY
Revision 0.0 To AX10
Page 1-5
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.1
INTRODUCTION
The Video Systems Reference Manual (or Video SRM) documents the
interfaces to DEC video terminal products.
It is intended to
serve as both an implementation specification
for
product
developers,
as well as a "guide" to progr.ammers attempting to
produce software which will be transportable across a wide range
of devices.
It defines the interfaces in a manner which is
independent of the physical characteristics of a particular device
implementation.
Enough flexibility is allowed in the interface
description to permit a wide variety of terminal products to be
produced, while insuring that software can be designed that can
intelligently make use of the full range of features in a given
product.
As new functionality is developed for new terminal products,
it
will be added to the Video SRM before final implementation.
Furthermore, an architectural certification process provides a
means of measuring product performance against the Video SRM, and
ensures software compatibility across products.
Products claiming conformance must be submitted for
testing and evaluated against these standards.
1.2
certification
STRUCTURE OF THE MANUAL
Terminal technology has become increasingly complex as
the
emphasis in computer system design has shifted from performing
mathematical and scientific calculations to making information
services readily accessible to the public. Even so-called "dumb
terminals" of today incorporate a wide range of capabilities that
bridge all aspects of computer architecture and ~esign.
In order
to reduce this complexity to a state which is comprehensible to
those who are not intimately familiar with these technologies,
this manual has been broken up into sections which describe
different functional components of a typical terminal system.
Although there is some interaction between these co~ponents,
they
are described in such a way that they can more or less stand
alone.
The sections of this manual include descriptions of the
components:
o
following
Code Extension Layer - defines 7 and 8 bit character
processing; defines escape and control sequence parsing;
defines compatibility with DEC STD 169 for hardware,
including graphic code extension techniques.
VSRM Concepts and Conformance ciiteria' EL-00070~Ol
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
o
Terminal Management - defines basic
terminal management functions.
o
Character Cell Display - defines Levelland
operation for character cell display devices.
o
Keyboard processing
in terminals.
o
Printer Port - defines the display
interface.
o
ReGIS Grap~ics - defines descriptor graphics protocol for
Base ReGIS and Raster Extension~.
o
Sixel Graphics
transfer.
o
Dynamically Redefinable Character Sets - defines loading
and designation of Dynamically Redefinable Character Sets
("soft" character sets).
o
User Definable Keys - defines loading and invocation
User Definable Keys (programmable function keys).
~
device
Page 1-6
defines use of the
defines
serial
independent
Level
LK201
terminal
protocol
2
keyboard
to
for
printer
image
of
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
Page 1-7
These components have the following functional relationship in the
design of an actual terminal product:
Components of a Terminal System
==_====~c======================
+- ------------------ ------ -- ------- -- ------ --- --+
1\
I \
I \
I
\
+-----+
I
\
+ - - - - - - - - - - - - -" - - - - +
I
\
I C
I
I
I
I
I 0
I
DISPLAY
I
I
I D L I
TERMINAL
- - ->
- - I E A I - - ->
I
I <----1
MANAGEMENT
Y I
I
I
I
I
\
I
I
I E E I PRINTER
PORT
I \
I
I
I X R I
T
I
+ - - - - - - - - - - - - - - - - -+
I \
I
I
/\1
\
I
I N
I
I
/.\
\ I
+-----+
I
/.::.\
\1
I
\::::.\
v
\::::.\
+-------------------+
,::::.\
KEYBOARD \
\: : : : •\
I
------------> I
\::::.\
\::::.\
\: :: /
I
CODE EXTENSION
LAYER
HOST
PORT
--->
--->
<- - -
<- - -
I
+-------------------+
I
I
\: / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
V
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.3
Page 1-8
ARCHITECTURAL STRUCTURE
Terminals are an important- part of any communications scheme. The
earliest
computer
communications was performed using coded
character sets and control functions.
This document describes in
detail some portions 'of an architectural model which-provides a
consistent and uniform basis for the development of terminal
service interfaces.
1.3.1
Virtual Terminals
The architectural model is built around the concept of 'Virtual
Terminals', which virtualize the interface to real physical
terminals.
"A virtual terminal is a - model which defines an
abstract terminal in terms of logical functions that can be
implemented differently on different real terminals; therefore a
virtual terminal consists of a real terminal and a protocol
adaptor." (Electrical Communication, Vol.
56, No.
I, 1981). The
virtual terminal interface consists of a number of disparate
service classes, or sets of functions.
1.3.2
Layers
The architecture is layered in an attempt to group those sets of
functions together which perform similar services within the
communications structure.
The architecture is broken down broadly into three functional
layers.
These layers are referred to as the Code Extension layer,
the Presentation Service Class layer,' and the Input Processing
layer.
In addition, there is a set of management functions which
operate across layers.
Input Processing
Terminal
Presentation Service Class
Management
Code Extension Layer
The purpose of layering the architecture is to separate components
which are logically distinct, allowing components in one layer to
be modified or replaced without impacting components in the other
layers of the architecture.
For example, the incorporation of a
new keyboard interface would
not
necessarily
affect
the
presentation
protocol, or the syntax of the communications
interchange.
VSRM Concepts and Conformance Criteria· EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.3.2.1
Page 1-9
Code Extension Layer -
The lowest layer of the architecture is referred to as the Code
Extension Layer.
This layer includes all services which form a
part of the interface into the communications environment, as well
as the syntax, or coding, of data and control functions.
Since all of the existing terminal services use character coded
data and controls (referred to as "ASCII stream"), this layer
currently includes the following functions:
o
Communications
Controls
(such
synchronization, padding, etc.)
o
ANSI parsing (separation of controls and data)
o
Graphic
Char~cter
as
XON/XOFF
Coding (7-bit and 8-bit environments)
In the future this layer may be extended or replaced with other
interfaces into DECnet, ISDN, X.2S, etc., without affecting the
overall structure of the architecture.
1.3.2.2
Presentation Service Class -
The next layer is referred to as the Presentation Service Class
Layer.
This layer includes all services which directly provide
imaging information. Output to the terminal is presented in the
form of data types, whose structure and operations are unique to
each service class definition. The only service class currently
defined for this layer is the Character Cell Display. Future
architectural development may include the definition of the
following service classes:
o
Character Cell Printer
o
Proportionally Spaced Printer
o
Videotex
o
Image Transfer
o
Voice
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.3.2.3
Page 1-10
Input processing -
The upper layer of the architecture is referred to as the Input
Processing Layer.
This layer includes all services which relate
to the processing of data entered into the terminal by the
terminal user.
Currently the only such device is the corporate
standard keyboard, but this may be extended" in the future to
include
other
entry
devices (such as voice input, mice,
digitizers, etc.).
This layer also may be extended to include local processing
functions such as editing of text and graphics. It should be
noted that the services provided at this layer may utilize the
various services of the Presentation Service Class Layer in order
to execute the functions they provide.
For example, .a field
editor might use ANSI text, ReGIS text, Videotex text, Teletex
text (or even voice I/O) to perform the same requirements of
processing field input.
1.3.2.4
Terminal Management -
Terminal Management functions operate across the other layers of
the architecture.
These functions include all services which
provide for identification, negotiation, and management of device
resources.
Examples of these services include Device Attributes
(DA), Soft Terminal Reset (DECSTR), and other control functions
which affect the .physical state of the terminal device. In the
future this layer may include multiplexing of virtual terminal
connections
(Virtual
Terminal
Management),
service
class
selection, and window management (multiple display windows).
1.3.3
Service Classes
within each layer of the architecture there may be classes of
service.
Functions within a layer are grouped into classes
according to their logical relationship. For example, character
oriented
text displays might form""a service class at the
presentation layer which is distinct from a graphics protocol
using logical pixel addressing. Furthermore, character oriented
keyboard processing would form a class at the applications layer
distinct from a forms editing protocol.
By separating these
functions according to classes it is possible to build a variety
of compatible products which conform to a common set of functions
within a given class of ope~ations.
•
VSRM Concepts and Conformance Criteria EL-O~070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
1_4
Page 1-11
SCOPE
The interfaces defined within this specification apply to both
internal and external product interfaces_ External interfaces are
interfaces between a terminal, personal computer or workstation
.and a remote ~ystem_ Internal interfaces are interfaces between a
terminal sUb-system and software processes running within a
terminal, personal computer or workstation.
*
*
terminal system
*
- - - - - - - - - - - - - - - - - - - - - - - - - -*
physical
terminal
virtual
terminal
host system
*
application
*. .. . . .. . . .
*
. . . . . . . . . . . . . . I process
*
- - - - - - - - - - - - - - - - - - - - - - - - - -*
* '
*
*
* EXTERNAL INTERFACE
*
*
terminal system
--- - --- -- --- -- ------ -- ----* --------- ----physical
terminal
virtual
terminal
*
* application
*
process
*
- - - - - - - - - - - - - - - - - - - - - - - - - -* - - - - - - - - - - - - -
firmware> *
*
* INTERNAL INTERFACE
External and Internal Terminal Interfaces
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF . DEC ~~ternal Use Only lS-May-1983
1.5
Page 1-12
ARCHITECTURAL CONFORMANCE
The video Systems Reference Manual is based on a
modular
architectural structure made up of discrete components which can
be combined in a variety of ways to meet evolving product needs
and requirements.
For purposes of defining conformance, service
class interfaces can be
further
subdivided
into
levels,
extensions, and exceptions.
The following definitions describe
these concepts.
1.5.1
1.5.1.1
Definitions
Levels-
Levels reflect an agreement between software and hardware on a
fixed group of functions within a class of operations that are to
be adhered to for some period of time.
When significant new
functionality is required to be added, a new level will be defined
and agreed to, which will be a super set of the levels below.
Lower levels of the architecture may be discontinued from use as
new higher levels are defined.
The decision to discontinue a
lower level wil~e based on marketing and product requirements.
Each level will consist of a number of functions which must be
included .in all products claiming to implement that level. These
functions are referred to as "required". When a level n function
is used in level n+l operation, it must be defined in such a way
that it will not affect any level n state differently than it does
in level n,
to insure compatibility for level n conforming
software running in level n+l.
The advantage of having levels is that software can be written to
a specific level of functionality based on hardware availability
and compatibility requirements, and will be guaranteed all of the
functionality of that level and all lower levels. As new levels
are adopted, terminals can be upgraded to support the new levels
without losing compatibility with existing software. Likewise,
software can be intelligently upgraded to support new terminal
products without losing backwards compatibility with previous
levels of the architecture.
1.5.1.2
Extensions-
In order to minimize the number of service classes and levels
supported by the architecture, and still meet a wide variety of
product needs, each level of the architecture will have certain
defined
extensions.
Extensions are fully specified by the
archi tecture, but are optional to product implem.entors claiming to
conform to a particular level of the architecture.
(Products may,
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
Page 1-13
in fact, permit the customer to optionally purchase extensions.)
Functions which are included as extensions are not guaranteed to
software,
and therefore conforming software should
not
pe
dependent on those functions to operate in a logical and reliabie
manner.
For example, 132-column mode is an extension to the
Character Cell Display se~vice class,
and thus might not be
included in all products.
Software should be designed in such a
way that it will behave in a logical manner if this feature is not
present in a particular terminal product.
1.5.1.3
Exceptions-
Each level may also inc1u.de a set of "exceptions".
These
functions are not required by product implementations, and are not
to be used by conforming software.
For example,
Tektronix 4010
emulation might be required by particular products, but not be a
part of the architecture because DEC software did not want to
support this feature.
The interface, however, would be documented
and included as an appendix to the architecture, so that products
implementing this feature could do so in a compatible manner.
Products must get management approval before using exceptions to
the architecture,
and any new exception specifications must be
approved by the Terminal Interface Architecture Review Board
before being i~p1emented.
1.5.1.4
Exc1usions-
In rare cases there may be certain functions which are explicitly
excluded from a given level.
This will typically be done to
clarify that a particular
function
is
not
allowed
for
implementation at that level.
1.5.1.5
Waivers -
Products which cannot pass certification cannot claim conformance
with the architecture unless they receive a formal waiver from
Terminals -and Workstations management. The following are examples
of conditions for which a waiver might be granted:
1.
If a product wished to implement functions which were not
previously defined by the architecture,
and were not
warranted to be
general
enough
to
require
new
architectural development.
VSRM Concepts and Conformance Criteria" EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
Page 1-1"4
2.
If a product were incapable of properly implementing a
defined function for sound technical reasons, but in
other ways conformed to the architecture.
3.
If a product conforming to a certain level wished to
include functions defined by a higher level, but not
implement all of the functions of that level.
Waivers are intended to be used to resolve time-to-market issues
and are temporary. Products not conforming are expected to come
into conformance by changing the product, or by changing the
architecture through the Architecture ECO process.
1.5.1.6
Deviations-
Deviations
represent
permanent
non-conformance
with
the
architecture.
Deviations apply only to products which were
developed before the architecture was defined, but are in general
conformance with the architectural specifications. New products
are not allowed deviations.
1.5.1.7
UNDEFINED Operations -
Occasionally there are operations whose
effect
cannot
be
guaranteed to be the same in all implementations. Such operations
shall be identified in both the architectural and
product
specifications
as
UNDEFINED.
Software
conforming to the
architecture shall not use UNDEFINED operations.
Every attempt
will be made to minimize the number of UNDEFINED operations in the
architecture, since software"that executes UNDEFINED functions may
not operate the same on all terminal products.
1.5.2
User Preference Features
Certain states of the terminal are defined as "User Preference
Features".
User
Preference
Features
that
have a coded
representation for interchange with a host are indicated to be of
a specia~ status in this specification.
The terminal user should be in charge of the state of all User
Preference
Features,
not
the general application program.
Conforming software applications shall not change the state of any
User Preference Feature, except in response to an explicit
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only ls-May-1983
page 1-15'
request by the terminal user. It is preferred that these requests
be handled as an operating system service. In cases where these
services. are not provided by the operating system, and these
functions are changed by an application program, the operating
system must be notified.
1.5.3
Rules For Conformance
Terminal and Workstation products will be required to provide
standard interfaces for the purpose of synchronizing hardware
product release with software product support. To this end, it is
important that products claiming to conform to the architecture
should follow certain guidelines in implementing the architectural
interfaces.
Products should not be excluded from implementing
features not defined by the architecture. However, it should be
made clear in both the architectural and product documentation
that these features are not guaranteed in all products, and should
not be used by conforming software.
Products should not be
allowed to selectively implement portions of the architecture
without
receiving
an
explicit,
waiver from Terminals and
Workstations
management
prior
'to
beginning
any
product
development, as -this will render the architecture useless in
determining cross.:..p_r.oduct compatibili ty.
1.5.3.1
Hardware/Firmware Conformance -
1.5.3.1.1 Levels - Terminal hardware/firmware claiming to conform
to Level n:
1.
shall implement ALL functions of the lowest defined level
to Level n,
2.
may ~OT implement any functions defined by a higher level
unless it implements all of the functions of that level
(in which case it would conform to the higher level),
3.
may NOT implement any function not defined in any level
(unless it is included in an appendix to both the
architectural and product specifications and clearly
identified as an exception to the architecture).
For example, a conforming Level I implementation cann6t :ieave out
bold, since it is a Level 1 function (however,· bold may be
implemented either by increasing the intensity or the number of
. pixels) . A conforming Level 1 implementation cannot implement any
Level 2 functions (or it must implement all of the Level 2
functions, in which case it is a Level 2 conforming terminal).
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.5.3.1.2
Page 1-16
Extensions-
Terminal hardware/firmware claiming to implement an extension
shall impl~ment ALL functions of that extension and the associated
conformance level, but need not implement any lower
level
extensions, unless specifically required by the specification of
the/ extension.
1.5.3.1.3
Exceptions-
Finally, a conforming terminal may NOT implement any VT100/VT125
function that has been excluded from all of the levels by this
document, unless it has been included in an appendix to this
document.
Such
functions· will
be
defined for backward
compatibility with existing terminals.
However,
conforming DEC
software shall NOT use those functions defined in an appendix.
1.5.3.2
1.5.3.2.1
Software Conformance -
Levels - Software claiming to conform to Level n:
1.
may use ANY functions in
Level n,
2.
shall NOT use any functions of levels higher than n,
3.
shall NOT use any fUI1A:tions defined in an appendix of the
SRM,
4.
shall NOT depend on product-specific side
are left UNDEFI~ED by th~ architecture.
the
lowest
defined
level
effects
to
which
page 1-17
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
1.5.3.2.2
Extensions-
Software supporting an extension may use any function in that
extension (and any extensions which are required to support that
extension), but shall use the functions in such a way as to make
the software modul.r with respect to extensions when it makes
sense to do so. Furthermore, software that supports an extension
shall operate in a sensible way if that extension is NOT present
in the terminal. The intent of this requirement is two-fold.
First, no conforming software should ever blindly assume that it
is using a terminal with an extension which it requires.
All
software must verify that its environment is correct. Second, if
the software determines that it does not have the required
facilities,
it must behave rationally.
This could mean that
certain features of the software are inoperative.
Or, if the
entire software package requires an· extension (e.g., DECgraph and
ReGIS), then rational behavior means exiting gracefully with an
appropriate informational message.
1.6
LEVEL I CONFORMANCE
Levell of the architectu~provides a compatibility mode for
software designed to 0p~Iate with the VT100 family of display
terminals, specifically the VT102 display terminal and VT125
graphics display terminal.
1.6.1
Conforming Products
For a list of conforming Levell products,
"Product Reference".
consult
the
appendix
VSRM Concepts and Conformance Criteria :EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.6.2
Required Functions
The following controls are required for
implementations.
..
Page 1-18
all
conforming
NUL
SPACE
NUL
SP
SHIFT IN (LOCKING SHIFT ZERO)
SHIFT OUT (LOCKING SHIFT ONE)
SINGLE SHIFT TWO
SINGLE SHIFT THREE
SI (LSO)
SO (LS1)
SS2
SS3
IDENTIFICATION
DEVICE STATUS REPORT
DEClO
DSR
SET TOP AND BOTTOM MARGINS
SELECT CHARACTER SET to GO, Gl
ASCII
Line Drawing
SELECT GRAPHIC RENDITION
Normal
Bold
Blink
Underscore
Reverse Video
SINGLE WIDTH LINE
DOUBLE WIDTH LINE
DOUBLE HEIGHT LINE TOP
DOUBLE HEIGHT LINE BOTTOM
Set/Reset Mode
SCROLLING MODE
SCRE.EN MODE
ORIGIN MODE
NEW LINE MODE
KEYBOARD ACTION MODE
AUTO REPEAT MODE
CURSOR KEY MODE
KEYPAD MODE
CURSOR UP
CURSOR DOWN
CURSOR FORWARD
CURSOR BACKWARD
CURSOR POSITION
HORIZONTAL/VERTICAL POSITION
CURSOR POSITION REPORT
SAVE CURSOR
RESTORE CURSOR
BEL
BACK SPACE
HORIZONTAL TAB
LINE FEED
DECSTBM
SGR
DECSWL
DECDWL
DECDHLT
DECDHLB
SM,RM
DECSCLM
DECSCNM
DECOM
LNM
RAM
DECARM
DECCKM
DECKPAM,DECKPNM
CUU
CUD
CUF
CUB
CUP
HVP
CPR
DECSC
DECRC
BEL
BS
HT
LF
Leve~
1
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-1983
VERTICAL TAB
FORM FEED
CARRIAGE RETURN
SUBSTITUTE
INDEX
REVERSE INDEX
NEXT LINE
HORIZONTAL TABULATION SET
TABULATION CLEAR
ERASE IN LINE
ERASE IN DISPLAY
VT
FF
CR
SUB
IND
RI
NEL
HTS
TBC
EL
ED
Page 1-19
page 1·20
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.6.3
Extensions To Level 1
The following functions are each independent extensions to Level 1
as
an
implementation or customer option, and require the
associated controls.
1.6.3.1
Identification And Conformance -
The following functions form an extension to Level
required in all future products, and in Level 2:
DEVICE ATTRIBUTES (primary)
DEVICE ATTRIBUTES (secondary)
SELECT CONFORMANCE LEVEL
1.6.3.2
1
Editing Controls -
Set/Reset Mode
INSERT/REPLACEMENT MODE
SM,RM
IRM
DELETE CHARACTER
INSERT LINE
DELETE LINE
DCH
IL
DL
l32-Column Mode -
Set/Reset Mode
COLUMN MODE
1.6.3..4
is
DA(l)
DA( 2)
DECSCL
The following editing controls form an extension to Level
is required in all future products, and in Level 2:
1.6.3.3
that
SM,RM
DECCOLM
Printer Port -
DEVICE STATUS REPORT
Set/Reset Mode
PRINTER CONTROLLER MODE
AUTO PRINT MODE
PRINT FORK FtED MODE
PRINT EXTENT MODE
Media Copy
PRINT SCREEN
PRINT LINE
DSR
SM,RM
DECPCM
DECAPM
DECPFF
DECPEX
MC
1
that
VSRM Concepts and Conformance Criteria~ EL-00070-01
*** COMPANY CONF - DEC Internal Use Only. l5-May-1983
1.6.3.5
ReGIS Graphics Display -
Set/Reset Mode
GRAPHICS CURSOR ENABLE MODE
SM,RM
DECGCEM
Media Copy
MC
Device Control string
ENTER ReGIS GRAPHICS
DCS,ST
ReGIS Commands
SCREEN CONTROL
POSITION CONTROL
WRITING CONTROL
VECTOR DRAWING
CURVE DRAWING
TEXT DRAWING
REPORT
LOAD CHARA~TER SET
MACROGRAPH
1.6.3.6
S
P
W
V
C
T
R
L
M
Sixel Protocol -
As defined in the section "Sixel Graphics Extension"
1.6.3.7
Katakana Character Set -
SELECT CHARACTER SET to GO, G1
JIS.Roman
JIS.Katakana
Page 1-21
VSRM Concepts and Conformance Criteria EL-00070-0l
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.6.4
Page 1-22
Levell User Preference Features
The following functions are included in Level 1 operation, but are
indicated as User Preference Features, and thus are not to be used
by conforming DEC application programs (except as described
above):
Set/Reset Mode
COLUMN MODE
SCROLLING MODE
SCREEN MODE
AUTO REPEAT MODE
SM,RM
DECCOLM
DECSCLM
DECSCNM
DECARM
Page 1-23
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal.Use Only 15. -May-1983
1.7
LEVEL 2 CONFORMANCE
Level 2 defines a new level of architectural compatibility for
video display terminals which is a complete super set of Levell.
1.7.1
Conforming Products
For a list of conforming Level 2 products,
"Product Reference".
1.7.2
consult
the
Required Functions
The following controls are required for
implementations.
all
conforming
All Level 1 requi red functions,' and
required for future products, plus:
all
Level
SELECT 7-BIT CI TRANSMISSION
SELECT 8-BIT CI TRANSMISSION
LOCKING SHIFT TWO
LOCKING SHIFT THREE
LOCKING SHIFT ONE RIGHT
LQCKING SHIFT TWO RIGHT
LOCKING SHIFT THREE RIGHT
S7ClT
S8C1T
LS2
LS3
LSIR
LS2R
LS3R
SOFT TERMINAL RESET
DECSTR
SELECT CHARACTER SET to .GO, Gl, G2, G3
ASCII
Line Drawing
Supplemental
Set/Reset Mode
TEXT. CURSOR ENABLE MODE
INSERT CHARACTER
ERASE CHARACTER
SM,RM
DECTCEM
ICH
ECH
1.7.3
appendix
1
Level
2
extensions
Extensions To Level 2
The following functions are each independent extensions to Level 2
as
an
'implementation o£· customer option,
and require the
associated controls.
VSRM Concepts and Conformance Criteria EL 00070-0l
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
c
1.7.3.1
l32-Column Mode -
All Level 1 required functions for this extension.
1.7.3.2
Printer Port -
All Level 1 required functions for this extension.
1.7.3.3
ReGIS Graphics Display -
All Level 1 required functions for this extension.
1.7.3.4
Sixel Protocol -
All Level 1 required functions for this extension.
1.7.3.5
Katakana Character Set -
All Level 1 required functions for this extension.
1.7.3.6
Selectively Erasable Characters -
SELECT CHARACTER ATTRIBUTE
SELECTIVE ERASE IN LINE
SELECTIVE ERASE IN DISPLAY
,1.7.3.7
DECSCA
DECSEL
DECSED
DRCS (Dynamically Redefinable Character Set) -
DOWN LINE LOAD DRCS
DECDLD
SELECT CHARACTER SET to GO, Gl, G2, G3
DRCS
1.7.3.8
UDK (User Defined Keys)
DEVICE STATUS REPORT
USER DEFINED KEYS
DSR
DECUDK
Page 1-24
VSRM Concepts and Conformance Criteria EL-00070-01
*** CO,MPANY CONF - DEC Internal Use Only 15-May-1983
1.7.4
Page 1-25
Level 2 User Preference Features
The following functions are included in Level 2 operation, but are
indicated as User Preference Features, and thus are not to be used
by conforming DEC application programs (except as described
above) :
Set/Reset Mode
COLUMN MODE
SCROLLING MODE
SCREEN MODE
AUTO REPEAT MODE
SM,RM
DECCOLM
DECSCLM
DECSCNM
DECARM
VSRM Concepts and Conformance Criteria EL-00070 Ol _
*** COMPANY CONF - DEC Internal Use Only '15 -May-1983
e
1.8
page 1 ~26
CERTIFICATION
Certification testing is performed on products ~laiming to conform
to
the
architecture
by
the
Terminals
and Workstations
Certification Group. Products may not claim compatibility with
the archit~cture or with other Terminals and Work.tations products
unless they have ~assed certificati6n testing, or have been given
specific
clearance to do so by Terminals and Workstations
management.
The goal
claims,
required
Systems
multiple
of Certification is to prove a product's compatibility
not according to its own interpretation of what is
for compatibility, but as defined in The Video Standards
Reference Manual (DEC Standard 070). This means that
products will use the same set of Certification tests.
Certification assumes the unit functions,
but checks if the
functions were implemented in a compatible manner.
It is also
important to note that certification testing is limited to that
subset of functions which are either required functions or
extensions to the architecture. This implies that a product that
passes certification may have problems executing commands which
are not part of that subset.
Outstanding certification issues are handled through the Waiver
Process, and are not likely to cause a delay in shipment.
Non-compliances are brought to the attention- of upper management
who can then decide to restrict the advertising of certain
compatibility claims until the product passes certification.
VSRM Concepts and Conformance Criteria';EL-00070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
1.8.1
Page 1-27
Certification Test Process
Certification is a five step process:
1.
.Review Archi tectural and Product Specifications
The Certification Group participates in the review of new
architectural
elements,
and
attempts
to
uncover
discrepancies
between
the
architecture
and
the
implementation even before hands-on testing begins.
The Certification Group, in cooperation with Architecture
Group, will decide the LEVEL that the product must be
tested against based on the list of implemented functions
contained in the Product Specification.
2.
Design Tests
3.
Run Tests
4.
Report Results
Certification Reports list
deviations
between
the
architecture and the implementation.
Interim reports are
produced periodically, and a final certification report
is published at the end of the testing.
It is the final
certification report that is used as the input to the
Waiver Process.
5.
Chair the Waiver Panel
The Certification Group conducts Waiver Panel meetings,
seeks
resolution
of
compatibility issues, obtains
commitments for any proposed changes, and publishes the
results.
VSRM Concepts and Conformance Criteria' EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
1.8.2
Page 1-28
The Waiver Process
1.8.2.1 General Information - The
Terminals
&
Workstations
Certification Waiver Panel is composed of three people: one
representative from Product Development, one from Architecture,
and a non-voting chair person from Certification •. Others may
attend the meetings of the Waiver Panel and can participate in the
discussions, but they have no vote.
The Waiver Panel is responsible for reviewing the deviations
between the architecture and implementation as documented in the
Certification Report, for assessing the technical and business
impact of every deviation, and for recommending an appropriate
resolution for every deviation.
1.8.3
Resolution Of Open Issues
There are six possible recommendations that the Waiver Panel
make for each level of certification under consideration:
1.
-~ange
will
The Product:
It is agreed that the problem must be fixed,
but that
because plans are in place to do so by a specified time,
a waiver is granted.
2.
Change The Architecture:
It is agreed that the product
reasonable
fashion
and
the
clarification.
3.
was implemented in a
Architecture may need
Change The Certification Procedure:
It is agreed that the certification process was in error
in that it either failed to properly interpret the
architecture or failed to properly test the product.
4.
Waive By Agreement of The Panel:
It is agreed that no change is to be made at this time to
the
product, the architecture or the certification
procedures.
By granting this waiver, the Panel is
expressing the opinion that it considers the issue
insufficient cause for the product to fail certification.
VSRM Concepts and Conformance ~riteria :EL-00070-01
*** COMPANY CONF - DEC Internal Use Only lS-May-1983
5.
Page 1-29
Restrict:
It is agreed that although no change to the product is
involved at this time, the deviation is serious enough to
warrant placing a restriction on what compatibility or
other claims the product ~hould be allowed to make.
6.
No Resolution:
The Waiver Panel was unable to agree on a resolution for
the issue or on the proposed time frame for resolution,
and will present it to upper ~anagement for a decision.
.
1.8.3.1 Results Of The Waiver Process· The Waiver Panel will
determine a final disposition for each level of certification
under consideration. Accor~ingly, the results for a particular
level can be:
o
PASSED CERTIFICATION
o
PASSED CERTIFICATION WITH WAIVERS
category 6 deviations
o
PASSED CERTIFICATION WITH RESTRICTION
No category
deviations, one or more category 5 deviations
o
FAILED CERTIFICATION - One or more category 6 deviations
No
category
5
or
6
•
In addition,' the Waiver
Panel may wish to· state any other
restrictions which it agrees should be placed on the product.
Page 1-30
VSRM Concepts and Conformance Criteria cEL-00070-01
*** COMPANY CONF - DEC, Internal Use Only' lS-May-l983
1.9
CHANGE HISTORY
Revision 0.0 To AXIO
1.9.1
1.
This section was merged with the introductory section,
the remainder of which now forms section 0 of the
standards.
2.
Removed DELETE as a required Levell function.
(It is
ignored as an unimplemented Cl control.
Its use as a pad
character should be discouraged in favor .of NUL).
3.
Removed Answerback (ENQ) and Test (DECTST) as required
functions for both Levelland Level 2 conformance. They
will be included as an appendix to the SRM.
4.
Added VT12S-type Media Copy (MC) controls to
extension requirements for Levels 1 and 2.
S.
Removed Hard Copy (DECHCP) as a requirement for the sixel
extension in Levels 1 and 2. The only required way to
access the sixel format is through the ReGIS S(H)
command.
6.
Removed Control Representation Mode (CRM) as a Level 2
requirement.
CRM will be defined in an appendix to the
SRM.
7.
Added Insert Character (ICH) and Erase Character (ECH) as
Level 2 requirements.
8.
Added Selectively
Extension.
9.
Added Device Status Report (DSR) to the UDK extension for
Level 2.
DSR is used to return the lock conditions of
the User Defined Keys.
10.
Made IRM, DL, IL, and DCH part of an Editing Extension to
Level 1 that is requi red in all, future products (and in
Level 2).
11.
Added a complete description of the Certification process
and the waiver procedure.
Erasable
Characters
as
the
a
ReGIS
Level
2
VSRM Concepts and Conformance Criteria EL-00070-01
*** COMPANY CONF - DEC Internal Use Only l5-May-l983
section Index
-AArchitectur~
conformance levels
deviations
exceptions
exclusions
extensions
hardware/firmware conformance
layers
model
required
service classes
software conformance
undefined
virtual terminal
waivers
ASCII Stream
1-12
1-14
1-13
1-13
1-12
1-15
1-8
1-8
1-12
1-10·
1-16
1-14
1-8
1-13
1-9
-C-
Certification
waiver panel
Certification Testing
Code Extension
Compatibility
Conformance
deviations
exceptions
exclusions
·extensions
Level 1
Level 2
hardware/firmware
Level 1
Level 2
product
required functions
software
waiver process
waivers
Conformance Levels
definition
Conformance Requirements
1-28·
1-27
1-9
1-26
1-14
1-13
1-13
1-12
1-20
1-23
1-15
1-17
1-23
1-26
1-12
1-12, 1-14, 1-16
1-28
1-13
1-12
1-12
Page· 1- 31
VSRM Concepts and Conformance Criteria ~EL-00070-01
*** COMPANY CONF . DEC Internal Use Only "15~May-1983
-0-
Deviations
definition
-E-
Exceptions
definition
Exclusions
definition
Extensions
definition
Leve). 1
Level 2
1-13
1-12
1-20
1-23
-I -
Input Processing
Interface
external
internal
1-10
1-11
1-11
-L-
Layer
code extension
input processing
presentation service class
Layers
Levels
definition
1-9
1-10
1-9
1-8
1-12
-P-
Presentation Service Class
Product Certification
Product Conformance
1-9
1-26
1-26
-R-
Required Functions
Level 1
Level 2
1-18
1-23
- S-
Service Class
definition
1-10
Page 1-32
VSRM Concepts and Conformance Criteria:- EL-00070-01
*** COMPANY CONF - DEC Internal Use Only 15-May-1983
Software Conformance
extensions
1-12
-T-
Terminal Components
Terminal Management
1-7
1-10
-U-
Undefined Operations
User Preference Features
definition
):.evel 1
Level 2
1-14
1-14
1-22
1-25
-V-
Video Systems Reference Manual
virtual Terminal
1-5
1-8
-W-
Waiver Panel
certification
Waivers
definition
1-28
1-13
Page 1-33
VSRM - Specification Program Structure ·EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
Page 2-1
VIDEO SYSTEMS REFERENCE MANUAL
Specification Program Structure
Document Identifier: A-DS-EL00070-02-0 Rev. AX11, 18-Mar-1985
ABSTRACT: This document describes the algorithmic specification
language used in the Video Systems Reference Manual and the
program flow across sections of the Manual.
APPLICABILITY: SARA Formal Cross-Component Standard.
Mandatory
for
Engineers designing' hardware for terminal products and
Software Engineers designing programs using terminal interfaces.
Additional requirements are defined in the section "Concepts and
Conformance Criteria".
STATUS:
FOR REVIEW ONLY
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -...---.. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
This document has been placed in the SARA "Formal
Cross-Component Standard" category. The material contained
within this document is assumed to define mandatory standards
unless it is clearly marked as (a) not mandatory or
(b) guidelines. Material which is marked as "not mandatory" is
considered to be of potential benefit to the corporation and
should be followed unless there are good reasons for
non-compliance. "Guidelines" define approaches and techniques
which are considered to be good practice, but shQu1d not be
considered as requirements. The procedures for modifying or
evolving this standard are contained within the contents of
this document.
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
FOR INTERNAL USE ONLY
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --+
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF . DEC Internal Use Only 18-Mar-1985
Page 2-2
TITLE: VIDEO SYSTEMS - Specification Program Structure
DOCUMENT IDENTIFIER: A-DS-EL00070-02-0 Rev. AXIl, l8-Mar-l985
REVISION HISTORY: Original Draft
Revision AXOl
Revision AXlO
FILES: User Documentation
2S-0ct-1982
28-Feb-l983
lS-May-1984
EL070S2.mem
Internal Documentation EL070S2.rno
EL070S2.rnt
EL070S2.rnx
Document Management Group: Terminal Interface Architecture
Responsible Department: Video Architecture Group
Responsible Individual: Peter Sichel
ACCEPTANCE:
This document has been approved by the Manager of the
Video Architecture Group based on a comprehensive review of its
individual sections by the members of the SARA component groups
working Terminal Interface Architecture issues.
The list of
individuals on the review and approval list are on file in
Standards and Methods Control.
requests for further information
PK03-1/l0C, DTN 223-5162, RANI:':VIDARCH
Dire~t
to
Peter
Copies of this document can be ordered from:
Standards and Methods Control
AP01/F7, DTN 289-1414, JOKUR::SIMONETTI
Sichel,
Page 2-3
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
CONTENTS
CHAPTER 2
SPECIFICATION PROGRAM STRUCTURE
2.1
2.1.1
2.1.2
INTRODUCTION • . . . • • . . . • • • • • • •
• 2-4
Algorithmic Specification
· . . . . . . 2-4
Use Of Pascal . . • . • . • .
• • • • • • • 2-4
2.2
SPECIFICATION PROGRAM STRUCTURE
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
2.3.7
SUMMARY OF STATE
Code Extension Layer Code Extension Layer Terminal Management
Character Cell Display
Keyboard processing .
Printer Port Extension
Extensions • . . . . .
• • • 2-6
• • • • • • • • • 2-7
parsing
• • ••
• 2-7
Graphics . . .
. . .
•
. . . . . . . ·
• . . . . . . ·
.
. ... ·
. • • . • . . ·
2.4
EXECUTIVE PROCEDURES
2.4.1
Executive Loop . .
2.4.2
Event Handling Tables . • . . .
2.4.2.1
Execute Control Code
2.4.2.2
Execute Escape Sequence
2.4.2.3
Execute Control Sequence . . .
2.4.2.4
Execute Device Control String
2.4.3
Device Attributes
2.4.4
Device Status Report . . . • . .
2.4.5
Set And Reset Modes
• . . . . .
2.4.5.1
Set Mode • .
.
2.4.5.2
Reset Mode . . . . . . • • . .
2.5
2.5.1
2.5.2
CHANGE HISTORY . . . • .
Rev 0.0 To AX10
Rev AXI0 To AX11 . . .
• .
.
.
.
.
.
.
.
. .
. . .
. . .
. . .
. . .
. .
. .
.
.
. • .
. .
.
.
. .
.
• 2-9
.
.
•
•
. . .
• . .
. . .
.
... 2-8
••
2 -10
2 - 12
2 -12
2 -12
. •
.
.
2 -13
2-13
2-15
2-15
2-16
2-18
2-20
2-21
2-22
2-24
2-24
2-26
2-28
2-28
2-29
VSRM - S'pecification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.1
Page 2-4
INTRODUCTION
This section contains inform~tion regarding the coding methods
used within the Video Systems Reference Manual to specify the data
types for terminal state information, and to describe the control
operations which affect· the state of the device •. ' -It also
describes the program structure across sections of the manual, and
includes the top level routines which bind the program sections
together. It should serve as a reference point for understanding
the
relationship
of
the detailed algorithms which appear
throughout the specifications. However, it is not intended to be
a complete or thorough implementation of the architecture as
described herein.
2.1.1
Algorithmic Specification
The coding of algorithms within .this specification is intended to
serve as a guideline to implementors, and as a clear specification
of the interfaces rules against which product certification can be
parforme~.
The code is optimized for architectural clarity. It
is intended to be as efficient as possible, but it is recognized
that~pecific implementations may alter the algorithms or program
struct.ure in order to optimi·ze for memory or execution speed.
They must do so, however, without sacrificing the functionality or
rules provided by the algorithms.
In other words, for all possible received interchange, conforming
implementation algorithms shall produce identical results to the
program specifications in terms of the presentation on the visual
display and the state variables that an application process can
solicit from the terminal.
2.1.2
Use Of Pascal
. Pascal was selected as an a~chitectural implementation language
because of its rigid structure and type checking, simplicity, and
wide usage both inside and outside of DEC.
Standard Pascal has
been used throughout, with the following exceptions:
underline is allowable in user-defined symbols
forward
implied
declaration
of
procedures
OTHERWISE is used as
statements'
an
exception
and
functions
condition
for
is
case
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
Page 2-5
Implementation Notes:
1.
Because PACKED ARRAYS are provided by Pascal as an
implementation
technique,
to
optimize
storage
requirements at the expense of execution speed, they are
not utilized within this specification.
2.
The internal procedure IGNORE is a null operation, which
is used throughout the specification in order to leave as
little room as possible for interpretation of undefined
states of the device.
page 2-6
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-l985
2.2
SPECIFICATION PROGRAM STRUCTURE
The following diagram is provided as an overview to the structure
of the coded algorithms within this manual. It is not intended as
a detailed description of the program logic.
EXECUTIVE LOOP
===) GET.NEXT.EVENT
------------------.(ANSI PARSER)
I INSERT OR
I REPLACE
I CHARACTER
I EXECUTE
I CONTROL
I CODE
I EXECUTE
I ESCAPE
I SEQUENCE
I EXECUTE
I CONTROL
I SEQUENCE
I EXECUTE
I---------
I-------•-
1-- - - - - - - -
I---------
1-- - - - - - - - -
IBEL
IBS
IHT
ILF
IVT
IFF
ICR
ISO
lSI
I SUB
lIND
INEL
IHTS
IRI
ISS2
ISS3
IDECSC
IDECRC
IDECDHLT
IDECDHLB
IDECSWL
IDECDWL
IS7ClT (2)
IS8CIT (2)
I LS2 (2)
ILS3 (2)
ILSlR (2)
ILS2R (2)
ILS3R (2)
ISCS
IICH (2)
ICUU
I CUD
ICUF
I CUB
ICUP
lED
IDECSED (2X)
IEL
IDECSEL (2X)
IlL (lX,2)
IDL (lX,2)
IDCH (lX,2)
IECH (2)
IDAl
I DA2 (2)
IHVP
'ITBC
ISM
IMC (lX,2X)
IRM
I SGR
IDSR
IDECSCL (2)
IDECSCA (2X)
IDECSTBM
IDCS
IDCS
IDCS
IDCS
IBS
IHT
ILF
IVT
IFF
ICR
general purpose routines
END.OF.LINE
SCROLL UP
SCROLL DOWN
Program Flow Diagram
IGNORE
I CONTROL
I STRING
1ST
(ReGIS)
(Sixel)
(DRCS)
(UDK)
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
2.3
Page 2-7
SUMMARY OF STATE
2.3.1
Code Extension Layer - parsing
CONST
MAX.NUM.INTERMEDIATES = 3;
MAX.NUM.PARAMETERS = 16;
MAX.PARAMETER.VALUE - 16384;
RANGE.PRIVATES = 2;
TYPE
EVENT. TYPE - (GRAPHIC.CODE,CONTROL.CODE,ESCAPE.SEQUENCE,
CONTROL.SEQUENCE,DCS.INTRODUCER);
CODE. TYPE = 0 •. 255;
(* legal 8-bit code values *)
INTERMEDIATE.TYPE = 32 •. 47; (* legal intermediate values
*)
PARAMETER.TYPE = O•• MAX.PARAMETER.VALUE;
ROW.COLUMN.TYPE = 0 •• 15;
SEQUENCE.TYPE = (ESCAPE,CONTROL,DCS);
EVENT.BUFFER.TYPE = RECORD
EVeNT.CODE: EVENT. TYPE;
COP~~VALUE: CODE. TYPE;
INTERMEDIATE. COUNT: O•• MAX.NUM.INTERMEDIATES;
INTERMEDIATES:
.
ARRAY [l .. MAX.NUM.INTERMEDIATES] OF INTERMEDIATE. TYPE;
PARAMETER. COUNT: O•• MAX.NUM.PARAMETERS;
PARAMETERS:
ARRAY [l •• MAX.NUM.PARAMETERS] OF PARAMETER.TYPE;
PRIVATE.PARAMETER: O•• RANGE.PRIVATES;
VALID. SYNTAX: BOOLEAN;
(* The following values are internal state variables
required by the parser. Note that the boolean flag
SEQUENCE. IN. PROGRESS must be initialized to FALSE
by the calling routine prior to the first time the
parser is invoked. *)
SEQUENCE.IN.PROGRESS: BOOLEAN;
KIND.OF.SEQUENCE: SEQUENCE. TYPE;
PARAMETER. OVERFLOW: BOOLEAN;
END;
VAR
EVENT: EVENT.BUFFER.TYPE;
VSRM - Specification Program Structure· EL-00070-02
*** COMPANY CONF - DEC Int~rnal Use Only 18-Mar-1985
2.3.2
TYPE
Code Extension Layer - Graphics
GRAPHIC.CHARACTER.SET.TYPE =
(ASCII.G,SUPPLEMENTAL.G,LINE.DRAWING,
JIS.ROMAN,JIS.KATAKANA,
ORCS);
(* standard *)
(* extension *)
(* extension *)
CO.CONTROL.CHARACTER.SET.TYPE = (ASCII.C);
Cl.CONTROL.CHARACTER.SET.TYPE = (SUPPLEMENTAL.C);
DESIGNATED GRAPHIC SET TYPE
=
(GO,Gl,G2,G3);
IN.USE.TABLE.TYPE = RECORD
CO: CO.CONTROL.CHARACTER.SET.TYPEj
GL: GRAPHIC. CHARACTER. SET. TYPE;
INVOKED.GL: OESIGNATED.GRAPHIC.SET.TYPEj
Cl: Cl.CONTROL.CHARACTER.SET.TYPEj
GR: GRAPHIC. CHARACTER. SET. TYPEi
INVOKED.GR: DESIGNATED.GRAPHIC.SET.TYPEj
END;
EN~IRONMENT
VAR
Page 2-8
TYPE
=
(SEVEN.BIT,EIGHT.BIT)j
IN.USE.TABLE: IN.USE.TABLE.TYPE;
DESIGNATED.GRAPHIC.SETS:
ARRAY [GO .• G3] OF GRAPHIC.CHARACTER.SET.TYPEi
HOST.PORT.ENVIRONMENT: ENVIRONMENT. TYPE;
Cl.TRANSMISSION.MODE: ENVIRONMENT. TYPE;
SINGLE.SHIFT: (NONE, 552, SS3)i
VSRM - Specification Program Structure -EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.3.3
CONST
TYPE
VAR
pag~
2-9
Terminal Management
(* defined by implementation *);
MAX_NUM_OPTIONS =
.( * Level 1 *);
MAX_POSITION = 20
(* Level 2 *);
30
EXTENSION_TYPE =
(ONE_THIRTY_TWO_COLUMN,PRINTER_PORT_EXT,
REGIS_GRAPHICS,SIXEL_GRAPHICS,KATAKANA_EXT,
SELECTIVELY_ERASABLE_CHARACTERS,DRCS_EXT,UDK_EXT);
SERVICE_CLASS: INTEGER;
CONFORMANCE_LEVEL: (LEVEL_l,LEVEL_2);
LEVEL_l_EXTENSIONS:
ARRAY [ONE_THIRTY_TWO_COLUMN •• KATAKANA_EXT] OF BOOLEAN;
LEVEL_2_EXTENSIONS:
ARRAY [ONE_THIRTY_TWO_COLUMN .. UDK_EXT] OF BOOLEAN;
PRODUCT_ID: INTEGER;
REVISION_LEVEL: INTEGER;
PRODUCT_OPTIONS: ARRAY [O •• MAX_NUM_OPTIONS] OF INTEGER;
ANSWERBACK_MESSAGE_BUFFER:
ARRAY [l .• MAX_POSITION] OF CODE_TYPE;
DEVICE_~TATUS:
(READY,MALFUNCTION);
POWER_ON: BOOLEAN;
IN_CONTROL_STRING: BOOLEAN;
Page 2-10.
VSRM- Specification Program Structure EL-0.0.o.7o.-0.2
*** COMPANY CONF . DEC Internal Use Only -18-Mar-1985
2.3.4
_
_
m
_
_
CONST
Character Cell Display
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
~
0
_
_
_
_
_
_
_
_
e
m
_
~
~
e
_
_
_
_
_
~
~
_
-
-
-
-
-
-
Q
MAX.NUM.LINES = 24;
MAX.NUM.COLUMNS = 132;
EMPTY CHARACTER = 0.;
MAX.NUM.CHARACTER SETS = 4; (* for Level 2 with DRCS *)
TYPE
LINE.TYPE = 1 .. MAX.NUM.LINES;
COLUMN.TYPE = 1 .. MAX.NUM.COLUMNS;
CHARACTER.POSITION.TYPE
LINE: LINE. TYPE;
COLUMN: COLUMN. TYPE;
END;
=
RECORD
GRAPHIC - RENDITION . TYPE =
(BOLD,BLINK,UNDERSCORE,REVERSE);
CHARACTER.RENDITION.TYPE =
ARRAY [GRAPHIC.RENDITION.TYPE] OF BOOLEAN;
LOGICAL.ATTRIBUTE.TYPE = (SELECTIVELY.ERASABLE);
CHARACTER.ATTRIBUTE.TYPE =
ARRAY [LOGICAL.ATTRIBUTE.TYPE] OF BOOLEAN;
LINE.RENDITION.TYPE =
(DOUBLE.HEIGHT.TOP,DOUBLE.HEIGHT.BOTTOM,
SINGLE.WIDTH,DOUBLE.WIDTH);
CHARACTER. TYPE = RECORD
CODE: 0. •. 126; (* 0. is used for empty characters *)
RENDITION: CHARACTER.RENDITION.TYPE;
ATTRIBUTE: CHARACTER.ATTRIBUTE.TYPEi
CHARACTER. SET: GRAPHIC.CHARACTER.SET.TYPEi
END;
CHARACTER.SET.DESIGNATOR.TYPE = RECORD
NAME: GRAPHIC.CHARACTER.SET.TYPEi
FIRST. INTERMEDIATE: 0. •• 47; (* 0. = no intermediate *)
S'ECOND. INTERMEDIATE: 0. •• 47;
FINAL: 0. •• 126; (* 0. indicates no table entry *)
END;
ORIGIN MODE TYPE = (ABSOLUTE,DISPLACED);
-
-
-
VSRM - Specification Program Structure £L-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
Page 2-11
SAVE_BUFFER. TYPE = RECORD
POSITION: CHARACTER.POSITION.TYPE;
RENDITION: CHARACTER_RENDITION. TYPEi
ORIGIN.MODE: ORIGIN_MODE. TYPE;
LEFT: GRAPHIC. CHARACTER. SET. TYPE;
RIGHT: GRAPHIC CHARACTER SET TYPE;
SETS: ARRAY [GO •• G3] OF GRAPfnC.CHARACTER.SET.TYPE;
ATTRIBUTE: CHARACTER.ATTRIBUTE.TYPE;
END;
VAR
DISPLAY: ARRAY [LINE.TYPE, COLUMN. TYPE] OF CHARACTER. TYPE;
LINE.RENDITION: ARRAY [LINE. TYPE] OF LINE.RENDITION.TYPE;
ACTIVE.POSITION: CHARACTER. POSITION. TYPE;
TOP.MARGIN: LINE. TYPE;
BOTTOM.MARGIN: LINE. TYPE;
CURSOR.SAVE.BUFFER: SAVE.BUFFER.TYPE;
CURRENT. RENDITION: CHARACTER.RENDITION.TYPEi
CURRENT.ATTRIBUTE: CHARACTER.ATTRIBUTE.TYPE;
CHARACTER. SET. TABLE:
ARRAY [1 .. MAX.NUM.CHARACTER.SETS] OF
CHARACTER.SET.DESIGNATOR.TYPE;
HORIZONTAL.TAB.STOPS: ARRAY [COLUMN. TYPE] OF BOOLEANi
COLUMN.MeBE: (EIGHTY,ONE.THIRTY.TWO)i
SCROLLING.MODE: (JUMP,SLOW);
SCREEN.MODE: (NORMAL.SCREEN,REVERSE.SCREEN);
ORIGIN.MODE: ORIGIN.MODE.TYPE;
AUTO.WRAP.MODE: (WRAP.OFF,WRAP.ON)i
TEXT.CURSOR.ENABLE.MODE: (TEXT.CURSOR.OFF,TEXT.CURSOR.ON)i
INSERT. REPLACEMENT. MODE: (REPLACE,INSERT);
NEW.LINE.MODE: (NEW.LINE.OFF,NEW.LINE.ON);
0
page 2-12
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.3.5
Keyboard Processing
VAR
KEYBOARD_ACTION.MODE: (UNLOCKED,LOCKED);
AUTO.REPEAT.MODE: (REPEAT.OFF,REPEAT.ON)i
CURSOR.KEY.MODE: (CURSOR,CK.APPLICATION)i
KEYPAD.MODE: (NUMERIC,KP .APPLICATION");
KEYBOARD.USAGE.MODE: (TYPEWRITER,DATA.PROCESSING);
CAPS.SHIFT.LOCK.MODE: (CAPS.LOCK,SHIFT.LOCK)i
HOLD.SCREEN.MODE: (HOLD.OFF,HOLD.ON);
LOCK.MODE: (LOCK.OFF,LOCK.ON);
COMPOSE_MODE: (COMPOSE_OFF,COMPOSE.ON)i
KEYCLICK.MODE: (KEYCLICK_OFF,KEYCLICK.ON);
2.3.6
Printer Port Extension
VAR
PRINTER. PORT. ENVIRONMENT: ENVIRONMENT. TYPE;
PRINTER.STATUS: (PRINTER.READY,PRINTER_NOT_READY,
PRINTER.NOT_PRESENT);
PRINTER.STYLE: (ASCII.ONLY,ASCII.PLUS,FULL_8_BIT);
PRINTER - CONTROLLER - MODE:
(PRINTER_CONTROLLER_OFF,PRINTER.CONTROLLER.ON)i
AUTO_PRINT_MODE: (AUTO_PRINT.OFF,AUTO.PRINT.ON)i
PRINT_FORM_FEED_MODE: (PRINT.FF_OFF,PRINT.FF.ON);
PRINT_EXTENT.MODE: (PRINT_SCROLLING_REGION,PRINT_DISPLAY)i
2.3.7
_
_
_
VAR
•
_
Extensions
_
_
e
_
•
_
_
_
_
_
_
_
_
•
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
GRAPHICS.CURSOR.ENABLE_MODE:
(GRAPHICS.CURSOR_ON,GRAPHICS.CURSOR_OFF)i
REGIS.GRAPHICS_MODE: (REGIS_OFF,REGIS.ON)i
SIXEL_GRAPHICS_MODE: (SIXEL_OFF,SIXEL_ON)i
LOAD.DRCS_MODE: (DRCS_LOAD_OFF,DRCS_LOAD_ON)i
LOAD_UDK_MODE:
(UDK_LOAD.OFF,UDK_LOAD_ON)j
_
_
_
_
_
•
_
_
_
_
_
_
_
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.4
2.4.1
Page 2':'13
EXECUTIVE PROCEDURES
Executive Loop
Purpose:
Describe the power on state.
Description:
When power is applied to the terminal all state is
initialized to its default values.
Input and output buffers are
cleared and interrupts are enabled. The terminal then enters a
loop in which it makes repeated calls to the parsing routine,
executing events as they occur.
This process continues until
power is turned off.
State Affected: None
Algorithm:
PROCEDURE EXECUTIVE. LOOP;
BEGIN
POWER.ON:- TRUE;
INITIALIZE. TERMINAL;
INITIALIZE.PARSER (EVENT);
WHILE POWER.ON DO
BEGIN
GET.NEXT.EVENT (EVENT);
IF NOT IN. CONTROL. STRING THEN
BEGIN
(* check for single shifts *)
SINGLE.SHIFT:- NONE;
WHILE (EVENT.EVENT.CODE = CONTROL. CODE) AND
(EVENT.CODE.VALUE = 142) OR (EVENT.CODE.VALUE
BEGIN
CASE EVENT.CODE.VALUE OF
142: SINGLE. SHIFT. TWO;
143: SINGLE.SHIFT.THREE;
END;
END;
(* then process the function *)
CASE EVENT. EVENT .. CODE OF
GRAPHIC. CODE: INSERT.OR.REPLACE.CHARACTER;
CONTROL CODE: EXECUTE CONTROL CODE;
ESCAPE·~·SEQUENCE: IF EVENT.VALID.SYNTAX THEN
EXECUTE. ESCAPE. SEQUENCE;
CONTROL. SEQUENCE: IF EVENT.VALID.SYNTAX THEN
EXECUTE. CONTROL. SEQUENCE;
DCS.INTRODUCER: IF EVENT.VALID.SYNTAX THEN
EXECUTE.DCS.INTRODUCER.SEQUENCE;
OTHERWISE IGNORE;
=
143) DO
VSRM - Specification Program Structure EL-OO~70-02
*** COMPANY CONF - DEC Internal Use Only 18~Mar-1985
END;
END
ELSE (* in control string *)
BEGIN
IF (EVENT. EVENT. CODE = CONTROL.CODE)
AND (EVENT.CODE.VALUE = 156) THEN (* String Terminator *y
IN.CONTROL.STRING:= FALSE
ELSE
BEGIN
IF REGIS.GRAPHICS.MODE = REGIS.ON THEN
(* pass all events to ReGIS parser for processing *)
EXECUTE.REGIS (EVENT);
IF SIXEL.GRAPHICS.MODE = SIXEL.ON THEN
(* pass all events to sixel parser for processing *)
EXECUTE.SIXEL (EVENT);
IF. LOAD.DRCS.MODE = DRCS.LOAD.ON THEN
(* pass all events to DRCS load routine for processing *)
LOAD.DRCS (EVENT);
IF LOAD.UDK.MODE = UDK.LOAD.ON THEN
(* pass all events to UDK load routine for processing *)
LOAD UDK (EVENT);
END;
END;
END;
END;
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only -18-Mar-1985
2.4.2
Page 2-15
Event Handling Tables
2.4.2.1
Execute Control Code -
Purpose:
Execute valid control codes.
Description:
When a control code is received by the terminal it
is immediately dispatched to the appropriate action routine by
this table of 8-bit code values.
State Affected: None
Algorithm:
PROCEDURE EXECUTE_CONTROL. CODE;
BEGIN
CASE EVENT.CODE.VALUE OF
7: WARNING. BELL ;
8: BACK. SPACE;
9: HORIZONTAL.'PAB,
lO: LINE. FEED; ___.
11: VERTICAL. TAB;
12: FORM. FEED;
13: CARRIAGE. RETURN;
14: SHIFT_OUT; (* Locking Shift One *)
15: SHIFT_IN; (* Locking Shift Zero *)
26: SUBSTITUTE;
132: INDEX;
133: NEXT.LINE;
136: HORIZONTAL. TABULATION. SET;
141: REVERSE. INDEX;
157: IN.CONTROL.STRING:= TRUE; (* Operating System Command *)
158: IN.CONTROL.STRING:= TRUE; (* Privacy Message *)
159: IN.CONTROL.STRING:= TRUE; (* Application Program Command *)
OTHERWISE IGNORE;
END;
END;
Known Deviations:
None
VSRM - Specification Program Structure EL-00070~02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
·2.4.2.2
Page 2-16
Execute Escape Sequence -
Purpose:
Execute valid escape sequences.
Description:
Escape sequences exhibiting valid
syntax
on
termination are acted upon immediately upon receipt of the final
character. The parser returns the final character code as well as
the count of code'values of any intermediate characters received
during processing of the sequence.
State Affected: None
Algorithm:
PROCEDURE EXECUTE. ESCAPE. SEQUENCE;
VAR
N: INTEGER;
BEGIN
IF EVENT. INTERMEDIATE. COUNT - 0 THEN
BEGIN
CASE EVENT.CODE.VALUE OF
55: SAVE. CURSOR;
56: RESTORE. CURSOR;
110: IF CONFORMANCE LEVEL - LEVEL.2 THEN LOCKING.SHIFT.TWO
ELSE IGNORE;
Ill: IF CONFORMANCE.LEVEL = LEVEL.2 THEN LOCKING.SHIF~.THREE
ELSE IGNORE;
126: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
LOCKING~SHIFT.ONE.RIGHT ELSE IGNORE;
125: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
LOCKING.SHIFT.TWO.RIGHT ELSE IGNORE;
124: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
LOCKING.SHIFT.THREE.RIGHT ELSE IGNORE;
OTHERWISE IGNORE;
END;
END
ELSE
BEGIN.
CASE EVENT. INTERMEDIATE. COUNT OF
1: (~ three character escape sequences *)
BEGIN
CASE EVENT.INTERMEDIATES[l] OF
35: (* i, 2/3 *)
BEGIN
CASE EVENT.CODE~VALUE OF
51: DOUBLE.HEIGHT.LINE.TOP;
52: DOUBLE.HEIGHT.LINE.BOTTOM;
53: SINGLE.WIDTH.LINE;
54: DOUBLE.WIDTH.LINE;
OTHERWISE IGNORE;
VSRM - Specification Program S·tructure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
END;
END;
32 : (* SP, 2/0- *)
BEGIN
CASE EVENT.CODE.VALUE OF
70: IF CONFORMANCE.LEVEL =.tEVEL.2 THEN.
SELECT.7.BIT.Cl.TRANSMISSION ELSE IGNORE;
71: IF CONFORMANCE.LEVEL = LEVEL.2 THEN
SELECT 8 BIT.C1.TRANSMISSION ELSE IGNORE;
OTHERWISE IGNORE;
END;
END;
40,41,42,43:
FOR N:= 1 TO 4 DO
IF EVENT.CODE.VALUE =
CHARACTER.SET.TABLE[N].FINAL THEN
DESIGNATE. CHARACTER. SET;
OTHERWISE IGNORE;
END;
END;
2: (* four character escape sequences *)
BEGIN
IF CONFORMANCE. LEVEL
LEVEL.2 THEN
BEGIN
CASE EVENT.INTERMEDIATES[1] OF
40,41,42,43:
IF (EVENT.INTERMEDIATES[2] =
CHARACTER.SET.TABLE[4].SECOND.INTERMEDIATE)
AND (EVENT.CODE.VALUE =
CHARACTER.SET.TABLE[4].FINAL) THEN
DESIGNATE. CHARACTER. SET;
OTHERWISE IGNORE;
END;
END
ELSE IGNORE;
END;
OTHERWISE IGNORE;
END;
END;
END;
=
Known Deviations:
None
page 2-17
VSRM - Specification program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.4.2.3
Page 2-18
Execute Control Sequence -
Purpose:
Execute valid control sequences.
Description:
Control sequences exhibiting valid syntax
on
termination are acted upon immediately upon receipt of the final
character. The parser returns the final character code as well as
the count of code values of any parameters and/or intermediate
characters received during processing of the sequence.
It also
indicates whether a private parameter value was received.
State Affected: None
Algorithm:
PROCEDURE EXECUTE. CONTROL. SEQUENCE;
BEGIN
.
IF EVENT. INTERMEDIATE. COUNT = 0 THEN
BEGIN
CASE EVENT.CODE.VALUE OF
64: IF CONFORMANCE LEVEL = LEVEL 2 THEN INSERT. CHARACTER;
65: CURSOR.UP;
66: CURSOR. DOWN;
67: CURSOR_FORWARD;
68: CURSOR. BACKWARD;
72: CURSOR.POSITION;
74: ERASE.IN.DISPLAY; (* also Selective Erase In Display *)
75: ERASE.IN.LINE;
(* also Selective Erase In Line *)
76: INSERT.LINE;
77: DELETE.LINE;
80: DELETE. CHARACTER;
88: IF CONFORMANCE.LEVEL = LEVEL 2 THEN ERASE. CHARACTER;
99: DEVICE.ATTRIBUTES;
102: HORIZONTAL.VERTICAL.POSITION;
103: TABULATION. CLEAR;
104: SET.MODE;
105: MEDIA. COPY;
108: RESET.MODE;
109: SELECT.GRAPHIC.RENDITIONi
110: DEVICE. STATUS. REPORT;
112:,IF (EVENT.INTERMEDIATE.COUNT = 1) AND
(EVENT.INTERMEDIATES[l] = 34) THEN
SELECT. CONFORMANCE. LEVEL;
113: IF (CONFORMANCE.LEVEL = LEVEL.2) AND
(LEVEL.2.EXTENSIONS[SELECTIVELY.ERASABLE.CHARACTERS])
THEN
SELECT.CHARACTER.ATTRIBUTE;
114: SET.TOP.AND.BOTTOM.MARGINS;
OTHERWISE IGNORE;
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
Page 2-19
END;
END
ELSE
(* no intermediates defined yet for control sequences *)
IGNORE;
END;
Known Deviations:
None
•
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-i985
2.4.2.4
Page 2-20
Execute Device Control String -
Purpose:
Execute valid device control strings.
Description:
Device
Control
String
Introducer
sequences
exhibiting valid syntax on termination are acted upon immediately
upon receipt of the final character. The parser returns the final
character code as well as the count of code values of any
parameters and/or
intermediate
characters
received
during
processing of the sequence. It also indicates whether a private
parameter value was received.
State Affected: None
Algorithm:
PROCEDURE EXECUTE_DCS.INTRODUCER.SEQUENCE;
BEGIN
IN.CONTROL.STRING:= TRUE;
IF EVENT. INTERMEDIATE COUNT = 0 THEN
BEGIN
CASE EVENT.CODE.VALUE OF
112: REGIS.GRAPHICS.MODE:= REGIS.ON;
113: SIXEL.GRAPHICS.MODE:= SIXEL.ON;
123: LOAD.DRCS.MODE:= DRCS.LOAD.ON;
124: LOAD.UDK.MODE:= UDK.LOAD.ON;
OTHERWISE IGNORE;
END;
END
ELSE
IGNORE;
(* no intermediates defined yet for DCS introducers *)
END;
Known Deviations:
None
VSRM - Specification Program Structure EL-00070-02
*** COMPA~Y CONF - DEC Internal Use Only l8-Mar-1985
2.4.3
Page 2-21
Device Attributes
Purpose:
Format:
Request device identification.
CSI
Pp
o
c
9/11
Pp
3/0
6/3
default Pp: none
Description:
The DA control with a zero or omitted parameter
prompts the terminal to return an identifying sequence in one of
two forms, depending on the setting of the private parameter.
value, Pp. If the private parameter is omitted, the terminal will
return a primary Device Attributes response (see the section
"Terminal Management" for more details on the terminal's response
to this request).
If the private parameter value is > (3/14) and
the device is a Level 2 or higher terminal, it will return a
Secondary Device Attributes response.
State Affected: None
Algorithm:
PROCEDURE DEVICE.ATTRIBUTES;
BEGIN
IF EVENT.PARAMETERS[l] = 0 THEN
BEGIN
CASE EVENT.PRIVATE.PARAMETER OF
0·: DEVICE.ATTRIBUTES.l;
2: DEVICE.ATTRIBUTES.2;
OTHERWISE IGNORE;
END;
END
ELSE IGNORE;.
END;
Known Deviations:
None
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only· lS"wMar-19S5
2.4.4
Page 2-22
Device Status Report
Purpose:
Request or report the general status of the device.
Format:
CSI
Ps
n
9/11
Ps
6/14
default Ps: 0
Description:
The DSR control is used as an inquiry of the
current state of the terminal device. Three levels of request are
provided: device availability, position reporting, and printer
availability.
If the parameter value is five (5) the devic~ will
respond with a DSR control, the parameter of which will be one of
the following:
o
Device ready, no malfunctions detected
Device not ready, malfunction detected
3
If the parameter value is six (6) the device will respond
Cursor Position Report (CPR) control.
Printer status requests use the private parameter value ?15
3/1 3/5).
Requests for the lock status of User Defined Keys use the
parameter value ?25 (3/15 3/2 3/5).
with
a
(3/15
private
Notes:
1.
There is no guarantee of synchronization between the
status reports transmitted by the device in response to
this command and the actual device states at the time
they are received by a communicating party. They are
only indicators of the device state at the time the DSR
control is executed by the device.
State Affected: None
Algorithm:
PROCEDURE DEVICE_STATUS_REPORTi
BEGIN
CASE EVENT.PRIVATE_PARAMETER OF
0: (* not a private *)
BEGIN
CASE EVENT.PARAMETERS[l] OF
VSRM - Specificationpro~ram structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
5: REPORT_DEVICE_STATUS;
(* see section "Terminal Management" *)
6: CURSOR_POSITION_REPORT;
(* see section "Character Cel~Display" *).
OTHERWISE IGNORE;
END; .
END;
1: (* private parameter '?' *)
BEGIN
CASE EVENT.PARAMETERS[l] OF
15: REPORT_PRINTER_STATUS;
(* see section "Printer Port Extension *)
25: REPORT_UDK_LOCK_STATUS;
(* see section "UDK Extension *)
OTHERWISE IGNORE;
END;
END;
OTHERWISE IGNORE;
END;
END;
Known Deviations:
None
Page 2-23
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
2.4.5
Page 2-24
Set And Reset Modes
2.4.5.1
Set Mode·
. -. ---------------------------- -... ------ ---.... -.. ----.................. -........ ..
~-
Purpos~:
place one or more mode values in the set state.-
Format:
CSI
Ps ;
; - Ps
h
9/11
Ps ;
; Ps
6/8
default Ps: none
Description:
The SM control provides a means of placing one
more of the terminal mode values into the set state.
or
Notes:
1.
The parameter list sent with a single instance of this
control should not exceed the maximum allowable for the
parser
implementation.
(Note:
for
a
detailed
description
of
the parser,
see the section "Code
Extension L.yer".)
Algorithm:
PROCEDURE SET.MODE;
VAR
N: INTEGER;
BEGIN
IF EVENT.PARAMETER.COUNT - 0 THEN EVENT. PARAMETER. COUNT: = 1;
(* check all parameters *)
FOR N:= 1 TO EVENT.PARAMETER.COUNT DO
BEGIN
(* check private parameter '1' (3/15) *)
IF EVENT.PRIVATE.PARAMETER = 1 THEN
BEGIN
CASE EVENT. PARAMETERS [N] OF
1: SET.CURSOR.KEY.MODEi
3: SET.COLUMN.MODEi
4: SET. SCROLLING.MODE i
5: SET. SCREEN. MODE i
6: SET.ORIGIN.MODEi
8: SET.AUTO.REPEAT.MODE;
18: SET.PRINT.FORM.FEED.MODE;
19: SET.PRINT.EXTENT.MODEi
25: IF CONFORMANCE. LEVEL = LEVEL 2 THEN
SET.TEXT.CURSOR.ENABLE.MODEi
OTHERWISE IGNORE;
END;
END
(* check standard parameters *)
~
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
ELSE IF EVENT.PRIVATE PARAMETER = 0 THEN
BEGIN
CASE EVENT.PARAMETERS[N] OF
2: SET_KEYBOARD_ACTION_MODEi
4: SET_INSERT_REPLACEMENT_MODE;
20: SET_NEW_LINE_MODE;
OTHERWISE IGNORE;
END;
END;
END;
END;
Known Deviations:
None
Page 2-25
VSRMo - Specification Program StructureELo~00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.4.5.2
Page 2-26
Reset Mode -
Purpose:
Place one or mode values in the reset state.
Format:
CSI
Ps ;
; Ps
1
9/11
Ps ;
; Ps
6/12
default Ps: none
Description:
The RM control provides a means of placing one
more of the terminal mode values into the r.setstate.
or
Notes:
1.
The parameter list sent with a single instance of this
control should not exceed the maximum allowable for the
parser implementation (sixteen or less is recommended for
backwards compatibility).
Algorithm:
PROCEDURE RESET.MODE;
VAR
N: INTEGER;
BEGIN
IF EVENT.PARAMETER.COUNT = 0 THEN EVENT.PARAMETER COUNT:- 1;
(* check all parameters *)
FOR N:- 1 TO EVENT.PARAMETER.COUNT DO
BEGIN
(* check private parameter '1' (3/15) *)
IF EVENT.PRIVATE.~ARAMETER·= 1 THEN
BEGIN
CASE EVENT.PARAMETERS[N] OF
1: RESET. CURSOR. KEY. MODE;
3: RESEoT. COLUMN. MODE;
4: RESET.SCROLLING.MODE;
5: RESET.SCREEN.MODE;
6: RESET.ORIGIN.MODE;
8: RESET.AUTO.REPEAT.MODE;
18: RESET.PRINT.FORM.FEED.MODE;
19: RESET PRINT EXTENT MODE;
25: IF CONFORMANCE.LEvEL - LEVEL.2 THEN
RESET. TEXT. CURSOR. ENABLE. MODE;
OTHERWISE IGNORE;
END;
END
(* check standard parameters *)
ELSE IF EVENT.PRIVATE PARAMETER = 0 THEN
BEGIN
CASE EVENT. PARAMETERS [N] OF
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF . DEC Internal Use Only l8-Mar-l985
2: RESET.KEYBOARD.ACTION.MODE;
4: RESET.INSERT.REPLACEMENT.MODE;
20: RESET.NEW.LINE.MODE;
OTHERWISE IGNORE;
END;
END;
END;
END;
Known Deviations:
None
Page 2·27
VSRM - Specification Program structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
2.5
Page 2-28
CHANGE HISTORY
Rev 0.0 To AXIO
2.5.1
1.
flow
Removed ENQ, DECTST, and DECHCP 'from program
diagram. Added ICH, ECH, DECSCA, DECSEL, and DECSED.
2.
Corrected value range for
Character.Type.Code
from
32 .. 126 to 0 .. 126 to permit 0 to be used to represent
empty character positions in the display state.
3.
Removed Control.Representation.Mode from the state tables
as well as the Set_Mode and Reset.Mode algorithms.
4.
Corrected the name of ReGIS.Graphics.Mode, and added
Sixel.Graphics.Mode, Load.DRCS.Mode, and Load UDK.Mode to
the state table for Extensions.
5.
Made minor editorial corrections to the Executive.Loop
algorithm, and added code to process Single Shifts and
the Load_ORCS and Load_UDK control strings.
6.
Removed
Answerback
from
the
Execute Control. Code
algori thm. _Removed the processing of Single. Shi ft. Two
and Single.Shift_Three from this routine.
7.
Removed Hard.Copy
from
the
Execute.Escape.Sequence
algorithm, and changed the character set designator value
50 to 60.
8.
Added
Insert.Character,
Erase.Character,
Select.Character.Attribute
to
Execut_.Control.Sequence algorithm. Removed DECTST.
9.
Changed the name of Execute.Device.Control_String
Execute.DCS.Introducer.Sequence.
10.
and
the
to
Changed t~e escape sequence handling algorithm to support
the character set designation scheme for DRCS which
allows designators to be redefined dynamically.
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-Mar-1985
2.5.2
Page 2-29
Rev AXIO To AxIl
1.
Removed Rev AXlO change. bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.
2.
Modified code to test intermediate count so that
Sequences are uniquely recognized.
3.
Modified code to test intermediate count so
introducer sequences are uniquely recognized.
Control
that
DCS
VSRM - Specification Program Structure ·EL-00070-02
*** COMPANY CONF - DEC Internal Use Only o-1.8-Mar-1985
This page deliberately left blank.
Page 2-30
VSRM - Specification Program Structure EL-00070-02
*** COMPANY CONF - DEC Internal Use Only 18-Mar-1985
Section Index
-A-
2-4
Algorithms
-C-
Coding
algorithms
Control Code
execution
Control Sequence
execution
2-4
2-15
2-18
-D-
DA
Device Attributes
control function
Device Control String
execution
Device Status Report
control function
DSR
2-21
2-21
2 -20
2-22
2-22
-E-
Escape Sequence
execution
Event Handling Tables
control codes
control sequences
device control string
escape sequences
Executive Loop
2-16
2-15
2-18
2-20
2-16
2-13
-I -
IGNORE
2-5
-M-
Mode
reset mode
set mode
2-26
2-24
Page 2-31
VSRM - Specification Program Structure -EL-00070-02
*** COMPANY CONF - DEC Internal Use Only l8-.Mar-l985
-P-
Pascal
Program Structure
2-4
2-6
-R-
Reset Mode
control function
RM
2-26
2-26
-S-
Set Mode
control function
SM
2-24
2-24
Page 2-32
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-1
Digital Internal Use Only
DEC STD 070-3 VIDEO SYSTEMS STANDARD CODE EXTENSION LAYER
Document Identifier:
A-DS-EL00070-03~0
Rev A, 14-Apr-1989
ABSTRACT: This document defines the form and syntax of the coded
communication between terminal products and other system
components.
It applies directly to serial line communications,
consisting of a stream of 7-bit or 8-bit combinations referred to
as "character codes". The mechanisms employed for achieving this
form of communication, however, may be applied within the context
of block oriented line protocols, networking packet protocols, and
program call interfaces over high-bandwidth bus interconnects.
APPLICABILITY: This document is Mandatory for Engineers designing
hardware for terminal products and software engineers designing
programs using terminal interfaces. Additional requirements are
defined in DEC STD 070-1 Video Systems Reference Manual - Concepts
and Conformance Criteria.
STATUS:
APPROVED 14-Apr-1989; type $ VTX SMC for expiration date.
+---~------------------------------------------------------------+
I
I
I
I
I
I
I
I
The material contained within this document is assumed to
define mandatory standards unless it is clearly marked as:
(a) not mandatory; or (b) guidelines. Material that is
marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there
are good reasons for non-compliance. "Guidelines" define
approaches and techniques that are considered to be good
practice, but should not be considered as requirements.
I
I
I
I
I
I
I
I
+----------------------------------------------------------------+
This document is confidential and proprietary.
It" is an
unpublished work protected under the Federal copyright laws.
Copyright (c) Digital Equipment Corporation.
reserved.
Digital Internal Use Only
"mDmDomD™
1989.
All rights
14-Apr-1989
Page 3-2
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
TITLE: DEC STD 070-3 VIDEO SYSTEMS STANDARD - CODE EXTENSION LAYER
DOCUMENT IDENTIFIER: A-DS-EL00070-03-0 Rev A, 14-Apr-1989
REVISION HISTORY: Original
Revision
Revision
Revision
Revision
Revision
Revision
Revision
Revision
Draft
0.1
0.2
0.3
AX04
AX10
AX11
Ax12
A
Document Management Category:
Responsible Department:
Responsible Person:
SMC Writer:
OS-Jun-1982
04-Sep-1982
20-0ct-1982
08-Dec-1982
28-Feb-1983
lS-May-1983
18-Mar-1985
06-Feb-1988
14-Apr-1989
Terminal Interface Architecture (STI)
DSG Terminals Architecture
Peter Sichel
Patricia Winner
APPROVAL: This document prepared by the Desktop Systems Group
has been reviewed and recommended for approval by the
general review group for its category for use throughout
Digital.
ter Conklin, Technical Director,
Desktop Systems Group
Peter Sichel, Desktop Systems Group
J2lltv~
Eric Williams, Standards Process Manager
Direct requests for further information to Peter Sichel,
DSGl-2/C7, DTN 235-8374, HANNAH::TERMARCH
Copies of this document can be ordered from Standards and Methods
Control, $ VTX SMC, JOKUR::SMC, DTN:
287-3724, or CTSl-2/D4.
Please supply your name, badge number, cost center, mailstop, and
ENET node when ordering.
~DmDDmDTM
14-Apr-1989
Page 3-3
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
CONTENTS
CHAPTER 3
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.2
DEC STD 070-3 VIDEO SYSTEMS STANDARD - CODE
EXTENSION LAYER
INTRODUCTION • • .
SCOPE
.
•
.
.
.
. • . . . . •
. • . • . 3-7
.
. . • . . 3-7
.
.
.
.
3.4.1
3.4.2
3.4.3
3.4.4
.
NATIONAL REPLACEMENT CHARACTER SET (NRCS)
•..
EXTENSION • • . • .'. • . . .
8-BIT INTERFACE ARCHITECTURE EXTENSION
RELATIONSHIP TO TERMINAL INTERFACE
. • •
ARCHITECTURE (TIA) • • .
3-7
. 3-7
3-8
TERMINOLOGY
3-10
CHARACTER CODING DESCRIPTION
3.3
3.3.1
CHARACTER CODES
. . • . .
3.3.2
7-BIT CHARACTER SETS . . .
8-BIT CHARACTER SETS . . .
3.3.3
3.3.4
CONTROL AND GRAPHIC CODES
3.3.4.1
Control Characters . . .
3.3.4.2
Graphic Characters • . .
3.4
.
.
.
.
..•.
. • . . . . .
. • . . . • .
• . . • . . .
.
.
.
SPECIAL CHARACTERS . .
3-17
2/0 (SPACE)
..••..•..
7/15 (DELETE)
...•.
1%
15/15
•
• .'.
•
•
. . . ..
•••
•
•
.. . . .
3.5
CONTROL CODE EXTENSION TECHNIQUES
. . .
3.5.1
GENERAL RULES
. . . . . . . . . . . . . .
3.5.1.1
Precedence ot Control Functions
3.5.1.2
Termination Conditions .
..... .
3.5.1.2.1
Cancel . . . . .
3.5.1.2.2
Substitute . . . . .
3.5.1.2.3
Escape . . . . . . .
3.5.1.2.4'
C1 Control Codes . .
. . • • • .
3.5.1.2.5
Universal Terminator •
. ....
3.5.1.3
Unimplemented Functions
. . . . . .
3.5.1.4
Transformation Between 7~bit and 8-bit
Environments . . • . . . . . • .
ESCAPE SEQUENCES . . . . . . .
..••
3.5.2
3.5.2.1
Expansion Escape Sequence (Fe) . . • • .
3.5.3
CONTROL SEQUENCES . . . . • . . . . . • •
3.5.3.1
PARAMETER VALUES IN CONTROL SEQUENCES
3.5.3.2
NUMERIC PARAMETERS . . . . • . . . • • .
3~5.3.3
SELECTIVE PARAMETERS . . . • • . . . . .
3.5.3.4
PRIVATE PARAMETER STRINGS • • .
3.5.3.5
Examples of Parameter Strings • . •
momoomD™
3-12
3-12
3-12
3-14
3-16
3-16
3-16
3-17
3-17
3-17
3-17
3-18
3-18
3-18
3-18
3-19
3-19
3-19
3-19
3-19
3-20
3-21
3-22
3-23
3-23
3-24
3-25
3-25
3-26
3-27
EL-00070-03
VSRM - Code Extension Layer
I
I
I
,I
3.5.4
3.5.4.1
3.5.4.2
3.5.4.3
3.5.4.4
3.5.4.5
3.5.4.6
3.5.5
3.5.5.1
I
I'
14-Apr-1989
Page 3-4
Digital Internal Use Only
CONTROL STRINGS . . . .
...
Device Control Strings . • . . • . .
Other Control Strings . . • . .
Character Strings
. . . . .
Termination Conditions.
,. . . . . .
GR Graphic Characters Within Control
Str ings
. . . . . . . . . . . . . . . .
Unimplemented Control Strings • • •
.•.
PARSING ALGORITHMS • . . . . . .
C Language Source Code • . . . • • • • •
3-28
3-28
3-29
3-29
3-30
3-30
3-30
3-31
3-32
GRAPHIC CODE EXTENSION TECHNIQUES . . . . .
3.6
3.6.1
DESCRIPTION OF SHIFT FUNCTIONS • . . . . .
Locking Shifts . . . . . . • . . . . . .
3.6.1.1
Single Shift Functions . • . . . . . . .
3.6.1.2
DESIGNATING CHARACTER SETS • . .' . . . . .
3.6.2
THE USER PREFERENCE SUPPLEMENTAL SET (UPSS)
3.6.3
3.6.4
DEFAULT DESIGNATION AND INVOCATION . . . .
3.6.4.1
Levell. . . . . . . . . . . . .
Level 2 (without 8-bit Interface
3.6.4.2
Architecture Extension)
...
3.6.4.3
Level 3 (or Level 2 with 8-bit Interface
Architecture Extension)
3.6.4.4
NRCS Extension • .
3-59
3-59
3-61
3-62
3-62
3-62
3-63
3-63
3.7
STATE DESCRIPTIONS
....•......
3.7.1
CONTROL SETS
• • .
3.7.2
G-SETS . . .
. . . . . • . . .
3.7.3
IN USE TABLE . • . . . . . • •
3.7.4
SINGLE SHIFT FUNCTIONS . . . . . . .
3.7.5
ENVI RONMENTS . . . . . . . . . . . . . • .
3.7.5.1
Level 1 - Host Port . . . .
....
3.7.5.2
Level 2 or Level 3 - Host Port . .
3-65
3-65
3-65
3-65
3-66
3-66
3-67
3-67
3.8
3.8.1
3-68
CONTROL OPERATIONS. . . . . . . . . . . . .
ANNOUNCE SUBSET OF CODE EXTENSION
FACILITIES . . . . . . . . . . . . . .
3.8.2
COMMUNICATIONS ENVIRONMENT..
. ...
Select 7-Bit Cl Transmission
Select 8-Bit C1 Transmission
3.8.3
SHIFT FUNCTIONS . . . . . . . . . • .
3.8.3.1
Locking Shifts. . . . . . .
Locking Shift Zero (Shift In)
Locking Shift One (Shift Out)
Locking Shift Two
Locking Shift Three
Locking Shift One Right
Locking Shift Two Right
Locking Shift Three Right
3.8.3.2
Single Shifts . . . . . . . . . . . . .
Single Shift Two
Single Shift Three
momDomD™
3-63
3-64
3-64
3-68
3-71
3-73
3-73
3-80
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-5
Digital Internal Use Only
3.9
3.9.1
3.9.2
3.9.3
3.9.4
CHANGE HISTORY . . • . .
REVISION 0.2 to 0.3
REVISION 0.3 to AX10 .
REVISION AX!O to AX!!
REVISION AX!! to AX!2
3-83
3-83
3-84
3-85
3-86
3.10
REFERENCED DOCUMENTS
3-88
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
mDmDomD™
14-Apr-I'S9
Page 3-6
. Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
3.1
14-Apr-1989
Page 3-7
Digital Internal Use Only
INTRODUCTION
This specification defines the form and syntax of the coded
interchange between terminal products and other system components.
It applies directly to serial line communications consisting of a
stream of 7-bit or 8-bit combinations referred to as "coded
characters". The mechanisms employed for achieving this form of
communication, however, may be applied within the context of block
oriented line protocols, networking packet protocols, and program
call interfaces over high-bandwidth bus interconnects.
3.1.1
SCOPE
The recognition and coding of characters as described in this
specification applies uniformly to all display terminals, printing
terminals, computing terminals and workstations, and is
independent of the actual character sets implemented in a
particular terminal product. The syntax defined herein applies
equally to the transmission and receipt of coded interchange at
the terminal interface.
3.1.2
NATIONAL REPLACEMENT CHARACTER SET (NRCS) EXTENSION
Support for National Replacement Character Sets was introduced as
an extension to the VT200 family of Digital terminals for backward
compatibility with national versions of the VT100 family.
The
NRCS extension allows U.S. ASCII to be replaced by one of 12 NRC
sets corresponding to the keyboard dialect selected (when the
keyboard dialect is other than "North American"). These 7-bit
character sets are similar to U.S. ASCII, but replace certain
reserved character positions with national use characters. The
National Replacement Character Mode (DECNRCM) is intended for
backward compatibility and restricts the terminal to 7-bit
characters. New applications are encouraged to use one of the
8-bit multinational character sets.
See "Character Set Mode" in
DEC STD 070-6 Video Systems Reference Manual
Keyboard
Processing. The rest of this section of DEC STD 070 does not
assume the NRCS Extension is present.
=
3.1.3
8-BIT INTERFACE ARCHITECTURE EXTENSION
Support for 96-character graphic character sets, ISO Latin-1
Supplemental, and the User Preference Supplemental Set (UPSS) was
introduced on the VT300 family of Digital terminals. The 8-bit
Interface Architecture Extension is required for Level 3
conformance to the Character Cell Display service class, and is
strongly recommended (but not mandatory) for Level 2.
It is also
mandatory for Level 2 of the Character Cell Printer service class.
The rest of this section for DEC STD 070 assumes the 8-bit
Interface Architecture Extension is present.
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
3.1.4
14-Apr-1989
Page 3-8
Digital Internal Use Only
RELATIONSHIP TO TERMINAL INTERFACE ARCHITECTURE (TIA)
Character encoding forms a part of the Code Extension Layer of the
Terminal Interface Architecture.
It is independent of any
specific service class, and therefore applies across all products
implementing any aspect of the architecture.
USER
Input Processing
..
T
e
r
m
i
n
a
1
M
a
n
a
g
e
m
e
n
t
Presentation
Service Class
II
II
II
Code Extension
Layer
II
. NRCS . 8-hi t I I
. IA
II
II
II
=---=-=-----=====--=-----=-==--==-==-=---=--==APPLICATION PROCESS
Figure 1. Structuring of the Terminal Interface Architecture
momDomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-9
Digital Internal Use Only
The interfaces defined within this standard apply to both internal
and external product interfaces.
txternal interfaces are
interf~ces between a terminal, personal computer, or workstation
and a remote system.
Internal interfaces are interfaces between a
terminal subsystem and software processes running within a
terminal, personal computer, or workstation.
.
*
**
terminal system
host system
----------------------~---*
physical
terminal
virtual
terminal
*
* ......... .
*
*
--------------------------*
*
*
**
terminal
.............. I
application
process
firmware> *
*
* INTERNAL INTERFACE
Figure 2. External and Internal Terminal Interfaces
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
3.2
l4-Apr-l989
page 3-lU
Digital. Internal Use Only
TERMINOLOGY
bit combination - Ordered set of bits that represent a character.
byte - A 7-bit or 8-bit string that is used to represent control
or graphic information. The size of the byte is independent of
redundancy or framing technique. (Note: this term commonly
refers to the 8-bit unit.)
character - Member of a set of elements that is ~s~d for the
organization, control and representation o·f data.
code; Coded Character Set - Set of unambiguous rules that
establishes a character set and the one-to-one relationship
between the characters of the set and their bit combinations.
code extension - Techniques for the encoding of characters that
are not included in the character set of a given code.
code table - Table showing the character corresponding to each bit
combination in a code.
.
control character - Control function of which the coded
representation consists of a single bit combination.
control function - Action that affects the recording, processing,
transmission, or interpretation of data. The coded representation
of a control function consists of one or more bit combinations.
control sequence - Bit string that is for control purposes in code
extension procedures consisting of two or more bit combinations,
beginning with a Control Sequence Introducer (CSI) control
function, and that may contain parametric information for the
control function.
control string - A string of characters that is used to perform a
control function and is delimited by an opening and closing
delimiter control. The opening delimiter is one of a small set of
introducer control functions (APC, DCS, OSC, PM), and the closing
delimiter is string Terminator (ST). Within Digital, the syntax
of control strings has been extended to include an introducer
sequence that acts as a protocol selector and specifies how to
interpret subsequent control string data.
designate - To identify a set of characters that are to be
represented, in some cases immediately and in others upon further
occurrence of a control function, in a prescribed manner.
environment - The characteristic that identifies the number of
bits used to represent a character in a data processing or data
communication system, or in part of such a system.
escape sequence - Bit string that is for control purposes in code
extension procedures consisting of two or more bi t combinations-,
the first of which is an Escape (ESC) character.
mDmDDmD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-11
Digital Internal Use Only
expansion escape sequence (Fe) - 2-character escape sequence in
which the final character is in columns 4 an~ 5, and is used to
extend the 7-bit code table by being the row equivalent to the
corresponding C1 set of controls in columns 8 and 9 of an 8-bit
code.
final character - The character whose bit combination terminates
an escape sequence, control sequence, or control string introducer
sequence.
graphic character - Character, other than a control character,
that has a handwritten, printed, or displayed visual
representation and that has a cod~d representation consisting of
one bit combination.
intermediate character - A character whose bit combination
precedes a Final character in an escape sequence, control
sequence, or control string introducer sequence.
invoke - To cause a designated set of characters to be represented
by the prescribed bit combinations whenever those bit combinations
occur (until an appropriate code extension function occurs).
numeric parameter - A control
numeric values.
sequenc~
parameter used for passing
parameter string - A character string, the bit combination of
which occurs between the Control Sequence Introducer character and
the first intermediate ~haracter or final. character of a control
sequence.
position - Item in a code table identified by its column and row
coordinates.
represent - 1) To use a prescribed bit combination with the
meaning of a character in a set of characters that has been
designated and invoked. 2) To use an escape sequence with the
meaning of an additional control function.
selective parameter - A control sequence parameter used to select
particular entries from a specified list.
EL-00070-03
VSRM - Code Extension Layer
3.3
14-Apr-1989
Page 3-12
Digital Internal Use Only
CHARACTER CODING DESCRIPTION
3.3.1
CHARACTER CODES
A character code is a unique bit combination that defines a
position in a coded character set by its column and row coordinate
within that set. Characters may be coded using 7-bit combinations
or 8-bit combinations. The choice of whether 7-bit or 8-bit
character codes are used is dependent on the "width" (frame size)
of the communications channel (referred to in this specification
as the "environment").
If the channel is only seven bits wide, then only 7-bit character
codes may be used.
If the channel is eight bits wide, then either
7-bit or 8-bit character codes may be used (7-bit character codes
are a specific subset of the 8-bit code structure). The following
table describes how the column and row position in the coded
character set is derived fro'm both 7-bi t and 8-bi t character
codes.
Bits of a 7-bit
combination
Bits of an 8-bit
combination
1
1
1
1
1 b7 1 b6 1 bS 1 b4 1 b3 1 b2 1 b1 1
1_1_1_1_1_1_'_1_'
,
,
,
,
,
I
I
I
,
, a8 , a7 , a6 I as 1 a4 1 a3 1 a2 1 al 1
1_1_1_1_1_'_'_1_'
I
,
COLUMN
1
1
1
ROW
1
1
,
1
Column and Row Reference
3.3.2
7-BIT CHARACTER SETS
A 7-bit coded character set has the following features.
a.
A set of 32 control characters allocated to columns 00
and 01 (bit combinations in the range %
to 1/15
inclusive).
AND EITHER
b.
A character Space (SP) in position 2/0, that may be
regarded as either a control character or a graphic
character.
c.
A set of 94 graphic characters allocated to columns 02 to
07 (bit combinations from 2/1 to 7/14, inclusive).
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
d.
14-Apr-1989
Page 3-13
Digital Internal Use Only
A control character Delete (DEL) in position 7/15.
OR
e.
A set of 96 graphic characters allocated to columns 02 to
07 (bit combinations from 2/0 to 7/15, inclusive).
The following table describes the structure of a.7-bit coded
character set including a 94-character graphic character set.
row
column
00 01 02 03 04 05 06 07
+---+---+---+---+---+---+---+---+
001
ISP I
I
+
+---+
I
011
I
I
+
I
I
021
I
I
+
I
I
031
I
I
+
I
I
041
I
I
+
I
I
051
I
I
.+
I
I
061
I
I
+
I
GL
071 CO
I
+controll
graphic
codes
081 codes I
+
I
091
I
+
I
10 I·
I
+
I
111
I
+
I
121
I
+
I
131
I
+
I
141
I
+
+---+
I
151
IDELI
I
+---+---+---+---+---+---+---+---+
Figure 3. 7-bit Code Table structure
mDmDomD™
EL-00070-03
VSRM - Code Extension Layer
3.3.3
14-Apr-1989
Digital
Int~rnal
Page 3-14
Use Only
8-BIT CHARACTER SETS
An 8-bit coded character set has the following features.
a.
All the features of a 7-bit coded character set as
previously listed.
b.
A set of thirty-two control characters allocated to
columns 08 and 09, called the C1 control set (bit
combinations from 8/0 to 9/15, inclusive).
AND EITHER
c.
A set of 94 graphic characters allocated to columns 10 to
15 (bit combinations from 10/1 to 15/14, inclusive),
called the GRgraphics set (for right~hand graphics set).
OR
d.
A set of 96 graphic characters allocated to columns 10 to
15 (bit combinations from 10/0 to 15/15, inclusive).
Note
2/0, 7/15, 10/0 and 15/15 are not included in CO,
GL, C1, or GR for 94-character graphic sets.
2/0 and 7/15'are included in GL when a
96-character set is invoked intq GL.
10/0 and 15/15 ~re included in GR when a
96-character set is invoked into GR.
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-15
Digital Internal Use Only
The following table describes the structure of an 8-bit coded
character set with 94-character graphic character sets.
Column
Row
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
001
ISP I
I
IXXXI
I
+
+---+
I
+---+
+
011
I
+
021
+
031
+
041
+
051
+
061
+
071
CO
+control
081 codes
GL
graphic
codes
+
091
+
10 I
+
111
+
121
+
131
+
141
I
I
I
I
I
I
I
I
I
I
I
I
+
I
+
I
+
I
+
I
+
I
+
Cl
Icontro1
I codes
GR
graphic
codes
I
I
I
I
I
I
I
+
I
+
I
+
I
I
+
I
I
I
I
I
+
+
+
I
+
+---+
+---+
151
IDELI
IXXXI
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
<------ seven bit codes ------->
<----------------------- eight bit
codes
----------------------->
Figure 4. a-bit Code Table structure
momDomD™
EL-00070-03
VSRM - Code Extension Layer
3.3.4
14-Apr-1989
Page 3-16
Digital Internal Use Only
CONTROL AND GRAPHIC CODES
The coded character stream can be separated into two categories:
control functions and coded graphic characters. Control functions
are actions that affect the recording, processing, transmission,
or interpretation of data. Coded graphic characters represent
actual presentation data. All bit combinations in the coded
character stream are specifically categorized as being either part
of a control function or a coded graphic character.
3.3.4.1
Control Characters
A control character is a single character whose occurrence in a
particular context initiates, modifies, or stops a control
function.
The control characters are referred to as CO and C1.
DEL (delete, 7/15) is also a control character, although it is not
a member of the CO or C1 sets. SP (space, 2/0) is also not a
. member of CO or C1, but it may be considered to be either a
control character or a graphic character.
In a 7-bit environment, the values of a CO control character are
in the range of columns 00 and 01 of the code table.
The C1
control characters are represented in 7-bit environments by
2-character escape sequences.
In an a-bit environment, the values of CO control characters are
from columns 00 and 01 and the values of C1 control. characters are
from columns 08 and 09.
3.3.4.2
Graphic Characters
Graphic characters are characters other than a control character
having a visual representation which is normally printed or
displayed. This includes all characters from the GL and GR
portions of the code table (2/1 to 7/14 inclusive and 10/1 to
15/14 inclusive for 94 character sets; 2/0 to 7/15, inclusive and
10/0 to 15/15 inclusive for 96 character sets). Graphic
characters are frequently referred to as "printing characters".
Bit combinations in this same range that occur within escape or
control sequences are not treated as graphic characters,· but are
processed as part of the control function.
EL-00070-03
VSRM - Code Extension Layer
3.4
14-Apr-1989
Page 3-17
Digital Internal Use Only
SPECIAL CHARACTERS
When 94-character graphic character sets are used, the following
characters are not part of either the control or graphic· sets in a
7-bit or a-bit code, and therefore have special processing as
described below.
3.4.1
2/0 (SPACE)
The Space character may be interpreted as a graphic character, a
control character, or both. As a graphic character it has the
visual representation of the absence of a graphic symbol. The
Space character will be displayed using whatever display
attributes are currently active.
3.4.2
7/15 (DELETE)
When received by a terminal, the Delete character is treated as an
unimplemented control character and shall be ignored. Conforming
software shall not use Delete as a pad character. The Delete
character may be issued as a result of keyboard processing.
Refer
to DEC STD 070-6 for more information.
3.4.3
10/0
The character code 10/0 in a-bit environments is treated as an
unassigned graphic character code, and will cause the error
character (usually imaged as a REVERSE QUESTION MARK) to be
displayed on conforming devices. Within escape sequences and
control sequences, the high order bit of this character will be
ignored, and it will be treated as syntactically equivalent to
Space (2/0).
3.4.4
15/15,
The character code 15/15 in a-bit environments is treated as an
unimplemented control code and shall be ignored.
EL-00070-03
VSRM - Code Extension Layer
3.5
14-Apr-1989
Page 3-18
Digital Internal Use Only
CONTROL CODE EXTENSION TECHNIQUES
Because the number of controls typically required for effective
communication far exceeds the number provided in either the 7-bit
or 8-bit code tables, special methods of providing additional
control functions have evolved. These methods can be divided into
three categories: escape sequences, control sequences, and
control strings.
3.5.1
GENERAL RULES
3.5.1.1
Precedence of Control Functions
Control characters, escape sequences, control sequences, control
strings, and graphic characters are processed serially in the
forward direction in the data stream with the following
precedence:
1.
Control characters
2.
Escape sequences, control sequences, and control strings
(equal precedence)
3.
Graphic characters
Thus, if a control character is transmitted in the middle of an
escape sequence, the cqntrol character is executed as if the
escape sequence were not present (that is, as if the control
character had been received immediately before the escape
sequence), with the exceptions noted below. The next character
received is assumed to be part of the escape sequence. However,
when transmitting to a device, implementors are warned not to
count on this property if they wish to follow the emerging ANSI
and ISO standards that specify this as an error condition whose
recovery is not specified. Control characters, escape sequences,
control sequences, and control strings should not (not mandatory)
be embedded in other escape sequences, control sequences, or
control strings.
3.5.1.2
Termination Conditions
Escape sequences and control sequences normally terminate only on
the receipt of a valid final character. However, there are
certain conditions that will cause a sequence to be terminated
without valid interpretation. In all of these cases, the
terminated sequence is ignored.
EL-00070-03
VSRM - Code Extension Layer
3.5.1.2.1
Page 3-19
Digital Internal Use Only
14-Apr-19.~~q
Cancel
Cancel (CAN, 1/8) is used to indicate that the data with which it
is sent is in error or is to be disregarded. Therefore, the
receipt of CAN causes immediate termination, without execution, of
any sequence in progress. The CAN character itself receives no
further processing. The characters following the CAN are not
interpreted as part of the escape or control sequence, but rather
are interpreted normally.
3.5.1.2.2
Substitute
Substitute (SUB, 1/10) is used to indicate replacement of a
character that could not be represented. The receipt of SUB
causes immediate termination, without execution, of any sequence
in progress. The SUB character itself, and all subsequent
characters, are not interpreted as part of the escape or control
sequence, but rather are interpreted normally.
3.5.1.2.3
Escape
If an Escape (ESC, 1/11) is embedded in an escape or control
sequence, the sequence is canceled and a new sequence begins with
that ESC.
3.5.1.2.4
C1 Control Codes
Since C1 control functions may be represented as ESC Fe sequences
in 7-bit environments, C1 control characters embedded in an escape
sequence or control sequence shall cause the sequence to be
canceled and a new control function to begin with the C1 control,
character. This provides for compatibility between 7-bit and
a-bit implementations.
3.5.1.2.5
Universal Terminator
In many instances it is important that the communications link be
set into a known state in order for conforming interchange to
proceed. Because of the complexity of the parsing algorithms and
rules regarding control code processing, it is desirable to
provide a single escapement that aborts any code processing in
progress and restore the terminal to a base state. This may be
accomplished using the string Terminator control code, transmitted
in its 7-bit format as ESC \ (1/11 5/12). This control terminates
the following conditions.
'
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-20
, Digital Internal Use Only
a.
Escape Sequence in Progress - The initial Escape control
character will cause the sequence in progress to be
canceled. The String Terminator will then be processed
as an ESC Fe sequence (7-bit C1 control code). If no
control string is in progress, the String Terminator will
be ignored.
b.
Control Sequence in Progress - Same as Escape Sequence in
Progress.
c.
Control String in Progress - If received before the Final
Character, the control string will be treated as a
Control Sequence in Progress. If the String Terminator
is received after the Final Character, it causes normal
termination of the control string~
d.
No Control Function in Progress - If a control function
is not in progress when the String Terminator is
received, it will be processed as an ESC Fe sequence
(7-bit Cl control code) and will be ignored by the
receiving party.
NOTE
This ,use of string Terminator applies to ANSI
conforming interchange as described in this
standard. Specific products may choose to
implement non-ANSI modes that do not recognize
String Terminator. Such modes should "be
'
documented exceptions.
'
3.S.1.3
Unimplemented Functions
Unimplemented functions shall be ignored as if they were not
received. This applies to unimplemented control characters,
escape sequences, control sequences, parameters of control
sequences, and control strings.
For example, unimplemented selective parameter values of control
sequences shall be ignored as if that parameter were not received.
Processing of the sequence shall continue with the next parameter.
For example, if the control sequence Select Graphic Rendition
(SGR) is sent with parameters: 1 (bold), 3 (italicized), 7
(negative image), and 21 (doubly underlined), and the terminal
implements bold and negative image, but does not implement
italicized or doubly underlined, the parameters 1 and 7 shall be
executed, and 3 and 21 shall be ignored.
mDmDomD™
EL-00070-03
VSRM - Code Extension Layer
3.5.1.4
14-Apr-1989
Page 3-21
Digital Internal Use Only
Transformation Between 7-bit and 8-bit Environments
To simplify the transformation between 7-bit and 8-bit
environments, relaxations in constraints for th. structure of
Control Sequences (introduced by CSI), control string introducer
sequences (introduced by APC, DCS, PM, and OSC), G2 sequences
(introduced by SS2), and G3 sequences (introduced by SS3) are
defined as follows:
In an 8-bit code, the bit combinations of columns 10 to 15 (except
15/15) are permitted to represent:
a.
Parameters, intermediates, and finals of a control
sequence
b.
The contents of a control string introducer sequence
c.
The operand of a single-shift character
In these situations, the bit combinations in the range 10/0 to
15/15 have the same meaning as the bit combinations in the
corresponding row from columns 02 to 07 (bit combinations in the
range 2/0 to 7/15 inclusive).
In a 7-bit code, the control characters Shift Out (SO, 0/14) and
Shift In (SI, 0/15) are permitted to occur:
a.
Between the Control Sequence Introducer (CSI, 9/11) and
the final bit combination of a control sequence
b.
Between the opening delimiter of a control string and the
string Terminator (ST, 9/12)
c.
Between a single-shift character and its operand
Shift Out and Shift In have no effect on the interpretation of a
control sequence, a control string, or the operand of a single
shift character, but may affect the meanings of sebsequent bit
combinations in the data stream.
EL-00070-03
VSRM - Code Extension Layer
3.5.2
14-Apr-1989
Page 3-22
Digital Internal Use Only
ESCAPE SEQUENCES
An escape sequence is a bii string that is used for conttol
purposes in code extension procedures and that consists of two or
more bit combinations, of which the first is the bit combination
corresponding to the Escape character (1/11).
The general form of an escape sequence is:
ESC
1 .. 1
F
where:
a.
ESC (Escape) is the introducer character, coded as 1/11
in both 7-bit and 8-bit environments.
b.
1 .• 1 are zero or more intermediate bit combinations used
in combination with the final character to specify the
particular function.
Intermediate characters for escape
sequences are bit combinations in the range of 2/0 to
2/15, inclusive.
Conforming implementations shall recognize at least three
intermediate characters.
If more intermediates than can
be recognized are received, the entire sequence shall be
ignored up to and including the final character.
c.
F is a final, function defining character.
It is used
either by itself or in combination with the intermediate
characters (if any) to establish the encoded function.
Final characters for escape sequences are bit
combinations in the range 3/0 to 7/14 inclusive.
d.
The occurrence of bit combinations %
to 1/15,
inclusive, as well as 7/15 and 15/15 in escape sequences
are special conditions that are handled by immediately
executing the control function indicated, and by
continuing processing of the escape sequence as if the
intervening control code had not been received. Note
that if the control code is CAN, ESC, or SUB, the
sequence in progress is terminated.
e.
The receipt of any 8-bit C1 control character in the
range 8/0 to 9/15, inclusive, during the processing of an
escape sequence causes the ~equence in progress to be
terminated.
(See subhead 3.6.1.2.4 under Termination
Conditions)
f.
Characters from columns 10 to 15 (10/0 to 15/14
inclusive) may occur in escape sequences and have the
same interpretation as the character from the
corresponding row in columns 02 to 07.
Thus, the 8th bit
of graphic characters should be ignored when interpreting
an escape sequence.
EL-00070-03
VSRM - Code Extension Layer
3.5.2.1
14-Apr-1989
Page 3-23
Digital Internal Use Only
Expansion Escape Sequence (Fe)
An expansion escape sequence is a special 2-character escape
sequence ( ESC Fe ), where Fe is in columns 04 and 05 (bit
combinations from 4/0 to 5/15 inclusive). Expansion escape
sequences are used to expand the 7-bit code table by being
equivalent to the 8-bit C1 control code in the row in columns 08
and 09 corresponding to the row of the Fe character.
3.5.3
CONTROL SEQUENCES
A control sequence is a bit string consisting of two or more bit
combinations, beginning with the Control Sequence Introducer
(CSI), and that may contain parametric information for the control
function.
The general form of a control sequence is:
CSI
P .. P
1 .. 1
F
where:
a.
CSI is the introducer character coded as 9/11 in 8-bit
environments and the 2-character escape sequence 1/11
5/11 ( ESC [ ) in 7-bit environments.
b.
P .. P is called the "parameter string". The minimum
length is zero and the maximum length is defined by the
implementation. However, all bit combinations are from
3/0 to 3/15 inclusive.
c.
1 •. 1 are the intermediate characters that may be used to
expand the repertoire of functions beyond the limit of 63
implied by the single final character value.
Intermediate characters for control sequences are bit
combinations in the range 2/0 to 2/15 inclusive.
If 3/0
to 3/15 occur after the occurrence of one or more
intermediate characters, the sequence is invalid.
However, the end of the control sequence is still defined
by the final character.
Interpretation will continue
until a valid final character is received.
Conforming implementations shall recognize at least three
intermediate characters.
If more intermediates than can
be recognized are received, the entire sequence shall be
ignored, up to and including the final character.
d.
F is a final, function defining character.
It is used
either by itself or with the intermediate characters (if
any) to establish what function is encoded.
Final
characters are bit combinations in the range 4/0 to 7/14,
inclusive.
momDomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-24
Digital Internal Use Only
e.
The occurrence of bit. combinations % to 1/15,
inclusive, as well as 7/15 and 15/15 in control
sequences, are special conditions that are handled by
immediately executing the control function indicated, and
continuing processing of the control sequence as if the
intervening control'code had not been received. Note
that if the control code is CAN, ESC, or SUB, the
sequence in progress is terminated.
f.
The receipt of any 8-bit C1 control character in the
range 8/0 to 9/15 inclusive during the processing of a
control sequence causes the sequence in progress to be
terminated. (See subhead 3.6.1.2.4 under Termination
Conditions)
g.
Characters from columns 10 to 15 (10/0 to 15/14
inclusive) may occur in control sequences and have the
same interpretation as th~ character from the
corresponding row in columns 02 to 07. Thus, the 8th bit
of graphic characters should be ignored when interpreting
a control sequence.
3.5.3.1
PARAMETER VALUES IN CONTROL SEQUENCES
A parameter string consists of bit combinations from 3/0 to 3/15
inclusive. The string represents one or more numeric or selective
parameter values. The maximum value of each parameter is defined
by implementation. A minimum of 16384 decimal (14 bits) is
recommended. Parameter values larger than the maximum supported
by an implementation should be mapped to the largest value
supported (although this is not mandatory).
The maximum number of parameters that can be contained in a single
parameter string is also implementation defined; however, support
for up to 16 parameters is required for compatibility. Parameters
beyond the maximum number supported may be ignored.
Each parameter value consists of zero or more bit combinations
from 3/0 to 3/9 inclusive, representing the decimal digits 0 to 9.
If more than one parameter value is to be supplied, the parameters
are separated from each other by the bit combination 3/11 (ASCII
semicolon ";"). The bit combination 3/10 is reserved for future
standardization. If 3/10 is received within a parameter string,
the entire sequence up to and including the final character shall
be ignored. Bit combinations 3/12 through 3/15 are used for
private parameter strings (see subhead 3.5.3.4).
In each parameter, leading bit combinations of 3/0 are not
significant and may be omitted. A zero length parameter, or one
consisting only of 3/0 bit combinations, represents a default
whose value depends upon the control function.
momDomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-25
Digital Internal Use Only
Representation of a Default Parameter Value
The latest version of ISO 6429 has instituted a
change that permits a parameter consisting only of
3/0 bit combinations to be treated as a parameter
value of zero, not necessarily the default value.
A selectable mode has been defined in the ISO
standard that controls the interpretation of a
parameter string consisting only of 3/0 bit
combinations as the default value.
This standard specifies that implementations
continue to recognize a zero-length parameter or
one consisting of only 3/0 bit combinations as
representing a default value for the control
sequence.
(A small number of Digital private
control functions violate this rule.
Refer to DEC
STD 138-0 Registry of Control Functions for
Character-Imaging Devices for further
information.)
3.5.3.2
NUMERIC PARAMETERS
Numeric parameters are used for passing numeric values.
If more
than one parameter value is supplied, the ordering of parameters
is significant and must be preserved by the use of additional
separators to replace omitted parameter values. A zero or omitted
numeric parameter represents a default that can apply to that one
parameter or to the entire parameter string, depending on the
control function.
3.5.3.3
SELECTIVE PARAMETERS
Selective parameters are used for selecting options from a list.
The list of options and corresponding parameter values is defined
by the control function.
A control sequence with selective
parameters is specified as taking either a fixed or variable
number of selective parameters.
If a fixed number of selective parameters is specified, the
meaning of each parameter is determined from a separate list of
values or actions. All of the parameters are required (or are
assumed to be defaulted) for the particular control function to
take effect.
If a variable number of selective parameters is specified, each
parameter selects a particular entry from a single list identified
by the control.
EL-00070-03
VSRM - Code Extensio,n Layer
14-Apr-1989
Page 3-26
Digital Internal Use Only
In control sequences with a variable number of parameters, the
parameters shall be processed sequentially beginning with the
first parameter. A control sequence containing more than one such
selective parameter shall have the same effect as a corresponding
number of separate control sequences, each with a single
parameter.
For example, if Select Graphic Rendition (SGR) is sent with the
following parameters, the resulting rendition will be negative
image, slowly blinking, since the 0 parameter, executed after
setting bold and underline, would return the current rendition
value to normal.
1 (bold)
4 (underlined)
o
(all attributes off)
7 (negative image)
5 (slowly blinking)
3.5.3.4
I
I
I
I
I
I
I
I
PRIVATE PARAMETER STRINGS
If a parameter string begins with a bit combination from 3/12
through 3/15, inclusive, the entire parameter string is subject to
private interpretation. This means that the control has a special
interpretation that is not specified in national or international
standards. If bit combinati.ons 3/12 through 3/15 occur anywhere
else in the control sequence o~her than as the first character of
the parameter string, the entire sequence up to and including the
final character shall be ignored.
Syntactically, the subsequent processing of private parameter
strings is identical to the processing of standard parameter
strings.
momDDmD™
EL-00070-03
VSRM - Code Extension Layer
3.5.3.5
14-Apr-1989
Page 3-27
Digital Internal Use Only
Examples of Parameter Strings
Table -1. Examples of Parameter Stings
Char
Form
Column/row
Form
Explanation
7
3/7
A single parameter value of 7
0007
3/0 3/0 3/0 3/7
A single parameter value of 7
98
3/9 3/8
A single parameter value of 98
4;2
3/4 3/11 3/2
Two parameters with values 4 and 2
13
3/12 3/3
A private parameter with value of 3
2;
3/2 3/11
Two parameters with the first having
the value 2 and the second having the
default value
;5
3/11 3/5
Two parameters with the first having
the default value and the secondhaving the value 5
1;;4
3/1 3/11 3/11 3/4
Three parameters with the first
having the value 1, the second having
the default value, and the third
having the value 4
13;4
3/15 3/3 3/11,3/4
A private parameter string containing
two parameter values, 3 and 4
3;14
3/3 3/11 3/15 3/4
An error. The occurrence of 3/15
as any but the first character of the
parameter string invalidates the
control sequence.
~DmDDmDTM
14-Apr-1989
Page 3-28
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
3.5.4
CONTROL STRINGS
Control strings are a special class of control code extensions
that provide a wide range of functions.
There are four types of
control strings, each of which has the same general structure with
its own introducer character and internal variations. The four
types and their formats are:
Application Program Command
APC (9/15)
0 .. 0
ST (9/12)
Device Control Strings
DCS (9/0)
0 .. 0
ST (9/12)
Operating System Command
OSC (9/13)
0 .. 0
ST (9/12)
Privacy Message
PM
0 .. 0
ST (9/12)
(9/14)
where:
a.
APC, DCS, OSC, or PM is the introducer character that
starts the control string and determines its type.
In
7-bit environments, the introducer control characters are
encoded as 1/11 5/15 (ESC ), 1/11 5/0 (ESC P), 1/11 5/13
(ESC ]), and 1/11 5/14 (ESC A), respectively
b.
0 .. 0 is a command string which has a unique format for
each control string type. However, the command string
must be made up of characters in the range 0/8 to 0/13
inclusive"and 2/0 to 7/14 inclusive. The inclusion of co
Controls 0/8 to 0/13 in control string data is intended
for convenience in formating and storing control strings.
It is recommended that these characters not affect the
interpretation of the control string.
c.
3.5.4.1
ST is the String Terminator control character (in 7-bit
environments ST is coded as ESC \ (1/11 5/12».
Device Control Strings
The internal format of a Device Control String is:
DCS
P .. P
I .. I
F
0 .. 0
ST
where:
a.
DCS is the Device Control String introducer.
b.
P .. P is an optional parameter string, identical in syntax
to the parameter string of a control sequence.
c.
I .. I is zero or more intermediate characters in the range
2/0 to 2/15 inclusive.
mDmoomD™
14-Apr-1989
Page 3-29
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
d.
F is a final, function defining character, in the range
7/0 to 7/14 inclusive (the same as for private Control
Sequences).
e.
0 .. 0 is the command string, whose format is determined by
the combination of parameters, intermediate characters,
and final character that precede it.
f.
3.5.4.2
ST is the String Terminator control character.
Other Control Strings
Other control string types (Application Program Command, Operating
System Command, and Privacy Message) are defined to have the
following internal format.
APC
OSC
PM
1 •. 1
1 •• 1
1 .. 1
F
F
F
0 •• 0
0 •• 0
0 •• 0
ST
ST
ST
where:
a.
APC, OSC, or PM is the Control String introducer.
b.
1 .. 1 is zero or more intermediate characters in the range
2/0 to 2/15 inclusive:
c.
F is a final, function defining character, in the range
3/0 to 3/15 inclusive (the same as for private Escape
Sequences).
d.
0 .. 0 is the command string, whose format is determined by
the combination of intermediate characters and final
character which precede it.
e.
3.5.4.3
ST is the String Terminator control character.
Character Strings
Future device implementations should treat the SOS Cl control as
the start of an unimplemented control string, although this is not
mandatory.
A syntax is not yet
strings; the use of
reserved for future
inclusion of escape
Strings.
specified for the interpretation of character
SOS and character strings within Digital is
standardization. Note that ISO may define the
and control sequences inside Character
EL-00070-03
VSRM - Code Extension Layer
3.5.4.4
14-Apr-1989
Page. 3-30
Digital Internal Use Only
Termination Conditions
Control strings will normally terminate upon receipt of a string
Terminator (9/12) chatacter. The receipt of the control
characters. 0/8 through 0/13 is valid within control strings. For
backward compatibility, and to minimize the effect of a lost
String Terminator, the control codes CAN (1/8), SUB (1/10), ESC
(1/11), or any C1 control will also terminate control strings.
Conforming software should not depend on this practice however,
and shall only use the String Terminator control function to
terminate a' control string. Control characters other than those
recognized within the command string syntax may be defined to have
other meanings .in the future. It is recommended that all other
control codes not used within a command string be ignored by
hardware.
3.5.4.5
I
I
I
.I
I
I
I
GR Graphic Characters within Control Strings
GR (8-bit) graphic characters in APC, OSC, and PM control strings
will be treated as their 7-bit equivalent (the eighth bit will be
ignored).
GR (8-bit) graphic characters are permitted within Device Control
Strings, and the graphic character's interpretation will be
dependent on the internal control string format. When they occur
in the introducer sequence to a Device Control String, the eighth
bit will be ignored, and they will be treated as their 7-bit
equivalent. (Note that this is the same way 8-bit graphic
characters are handled within control sequences.)
3.5.4.6
Unimplemented Control Strings
The contents of received control strings that are not implemented
by the receiving party will be ignored. Therefore, all data
(control and,graphic characters) from the control string
introducer to the string terminator (inclusive) will be discarded
without being displayed .
•
EL-00070-03
VSRM - Code Extension Layer
3.5.5
14-Apr-1989
Page 3-31
Digital Internal Use Only
PARSING ALGORITHMS
This section describes the rules required to correctly parse a
7-bit or 8-bit character stream, separating the control functions
from data contained in the stream.
Implementation Notes:
This coding is intended to serve as a guideline to implementors
and a clear specification of the parsing rules against which
product certification can be performed. The code is typical of
actual implementations, but is optimized for architectural
clarity.
It is recognized that specific implementations may alter
the algorithms or program structure to optimize memory or
execution speed. Such implementations must not violate the
external functionality or rules provided by the parsing
algorithms.
VAx-I! C was selected as the implementation language because of
its simplicity, portability, and wide use both inside and outside
of Digital.
Module Overview:
The parser is broken into modules as follows.
gparse.h
global include file
(must be included by external routines
that call the parser)
lparse.h
local include file
(contains definitions used
internally by the parser)
vtparse.c
parse routines
ptexec.c
parser tester executive
Other modules not shown here include system-dependent character
1/0 routines and interrupt handling.
14-Apr-1989
Page 3-32
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
3.5.5.1
C Language Source Code
/******************* module gparse.h ********************
**
**
*
**
*
*
*
*
*
*
Global #include file for callable re-entrant ANSI parser.
Environment:
VAX/VMS
Author: Peter Sichel
24-Feb-1984
Modification history:
13-Nov-1984
P. Sichel
added external events for control·
string introducers APC, OSC, and PM
16-May-1988
P. Sichel
added parse limits
changed default stack size to 32
*
*********************************************************/
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
/* parse limits */
#define MAX NUM INTERMEDIATES
#define MAX-NUM-PARAMETERS
#define MAX:PARAMETE~ VALUE
3
16
16383
/* parse stack */
#define STACK SIZE· 32
struct parse stack
-
{
char index;
/* stack pointer */
unsigned char
class[STACK SIZE];
unsigned char
value[STACK-SIZE];
unsigned short int data[STACK:SIZE];
};
/* common parse states */
#define SEQ START 0
#define CON-START 1
/* external parse events */
#define R PARSE ERROR
0
#define R-CONTINUE
1
#define R-GRAPHIC
2
#def-ine R-CONTROL
3
#define R-ESC SEQ
4
#define R-CSr-SEQ
5
#define R-DCS-SEQ
6
#define R-APC-SEQ
7
#define R-OSC-SEQ
8
#define R:PM_SEQ
9
-
-
mOmOOmD™
EL-00070-03
VSRM - Code Extension Layer
/*
/*
esc ape
seq u e n c e
parser definitions
(includes control character parser also)
*/
/* parse states */
/*
SEQ START 0 */
/*
CON-START 1 */
idefine ES IN SEQ 2
idefine ES-IGNORE 3
/*
14-Apr-1989
Page 3-33
Digital Internal Use Only
con t r
0
1
/* parse states */
SEQ START
/*
idefine CS PRIVATE
idefine CS-PARAM.
idefine CS-INTER
idefine CS-IGNORE
idefine CS IGNORE P 5
momaomD™
/* already defined above */
/* already defined above */
seq u e n c e
0 */
1
2
3
4
*/
parser definitions
*/
/* already defined above */
/* parameter value */
/* ignore sequence,
but parse until final */
/* ignore any further parameters,
but accept sequence if otherwise
valid */
EL-00070-03
VSRM - Code Extension Layer
14-Ap~-1989
page 3-34
Digital Internal Use Only
/*********************** module lparse.h
*
*
*
*
*
**
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
***~*******************
Local iinclude file for callable re-entrant ANSI parser
Environment: VAX/VMS
Author: Peter Sichel
VAX-ll C Vl.2
24-Feb-1984
Modification history:
2-May-1984
T. Lasko
Fixed overlapping idefine's in parser states
29-May~1984
P. Sichel
fixed pseq parse table to correcly
ignore invalid sequences
.
l-Jun-1984
P. Sichel·
added state CS OMIT to indicate
omitted parameters explicitly
16-May-1988
P. Sichel
removed CS OMIT
Added CS IGNORE P to ignore parameters
beyond MAX NUM PARAMETERS.
Added ES IGNORE to ignore escape sequences
with more than MAX NUM INTERMEDIATES.
Fixed bug in parse-table that would accept
intermediates from CS IGNORE state.
5-Feb-1989
P. Sichel
·converted parse table data declaration.to use
symbolic constants, and moved to module vtparse.c
****************************************************************/
~DmDDmDTM
14-Apr-1989
page 3-35
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
/* state classes - used by parse executive to determine which
parser to invoke */
idefine
idefine
idefine
idefine
idefine
o
ESEQ
CSI
DCS
LAST_SEQ
CON
/*
/*
/*
/*
/*
1
2
2
3
escape sequence
*/
control sequence */
control sequence */
"in sequence" marker */
control and graphic characters */
/* internal parse events returned by parse_ansi() */
1
1
I.
1
1
1
1
1
1
1
1
idefine
idefine
idefine
idefine
idefine
idefine
PARSE ERROR
CONTINUE
GRAPHIC
CONTROL
ESC SEQ
PAR=SEQ
OxDO
OxEO
OxFO
idefine CANCEL
idefine PARAM
idefine IGNORE
/*
/*
OxOO
Ox10
Ox20
Ox30
Ox40
Ox50
/* reduce a numeric parameter */
e s c ape
seq u e n c e
parser definitions
(includes control character parser also)
*/
*/
/* parse inputs (count by number of states) */
idefine
idefine
idefine
idefine
/*
ES CONTROL
ES-INTER
ES-FINAL
ES-GRAPHIC
con t r
0
1
0
4
8
12
seq u e n c e
parser definitions
/* parse inputs (count by number of states) */
idefine
idefine
idefine
idefine,
idefine
idefine
ide fine
PI CONTROL
P'!-PRIVATE
PI-NUMERAL
PI SEMI COL
PI - INTER
PI - FINAL
PI-OTHER
mDmDomD
m
0
6
12
18
24
30
36
*/
EL-00070-03
VSRM - Code Ex-tension Layer
1
.1
1
1
1
I
I
1
1
1
I
1
I
14-Apr-1989
Page 3-36
Digital Internal.Use Only
/****************** module vtparse.c ***************
**
*
*
**
*
*
**
*
Callable re-entrant ANSI parser. This module contains
the entire parser, and the action routines that alter
the parse state.
Environment:
Author:
VAX/VMS
Peter Sichel
Modified by.
PAS 30-May-84
*
PAS 12-Nov-84
**
**
*
PAS 13-Nov-84
PAS 16-May-88
*
*
*
*
'*
*
*
PAS
5-Feb-89
*/
momDomD™
VAX-11 C V1.2
24-Feb-1984
added missing "break" to switch case "IGNORE".
modified eseq class and pseq class to
recognize OxFF as a control character
added code to recognize OSC, PM, and APC
control strings
Added code to test for MAX NUM INTERMEDIATES.
Added code to ignore pa-rameters beyond
MAX NUM PARAMETERS.
Added code to handle parameter values
larger than MAX PARAMETER VALUE.
Removed distinction between omitted
and zero parameters.
Included basic documentation in this file.
Included parse tables in this module.
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-37
Digital Internal Use Only
1*
Introduction To VTPARSE
VTPARSE is a table-driven, character re-entrant, callable parser
designed to recognize control functions encoded according to the
ANSI syntax for information interchange. The rules for encoding
control functions are defined in several standards including
ANSI 3.41, DEC STD 138-0 and DEC STD 070-3.
VTPARSE accepts one input character at a time (per call), and
recognizes the following catagories of control functions when
they occur in the input stream.
o
Graphic Characters
o
CO and C1 Control Characters
o
Escape Sequences
o
Control Sequences
o
Control String Introducer Sequences including:
DCS, OSC, PM, and APC
Interpreting Return Information From parse_ansi
Parse ansi
r~turns
R PARSE ERROR
R-CONTINUE
R-GRAPHIC
R-CONTROL
R-ESC SEQ
R-CSI-SEQ
R-DCS-SEQ
R-OSC:-SEQ
R-PM SEQ
R:APC_SEQ
with "event" set to one of the following.
parse stack overflow, or software bug
no event, continue parsing
recognized a graphic character
recognized a control character
recognized an escape sequence
recognized a control sequence
recognized a DCS introducer sequence
recognized a OSC introducer sequence
recognized a PM introducer sequence
recognized a APC introducer sequence
The character or character sequence recognized is on the
"state" stack. Parse ansi returns two integers pointing to
the first and final characters of the sequence on the stack.
Each stack entry has three fields: a "class" field, a "value"
field, and a "data" field. The possible values for these fields
are defined in the include files "gparse.h" and "lparse.h".
The "class" field is used internally by the parser to determine
which subparser to invoke (that is, the parse table to use). To
keep the tables reasonably small, a separate table is used for
parsing parameter sequences.
mDmDomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-38
.
Digital Internal Use Only
The "value" field is used by the parser to maintain its current
state.
The parser is a table driven finite state automata,
where the next state and action are a function of the current
state and input. The "value" field of the parse stack provides
a history of what states the parser has been in and is useful
for interpreting the contents of the parse stack. The "value"
field may be used to identify the contents of the "data" field
except for the final character of a sequence. The final "value"
is usually meaningless because when a sequence is recognized,
it is removed from the stack eliminating the need for a parse
state. A single graphic or control character is considered both
the start and final character of a sequence.
The "data" field contains the actual character data input to the
parser or a number of characters in reduced form.
Examples of
reduced forms are a single Cl control replacing an Fe sequence
or a complete parameter value replacing a number of individual
parameter characters~ Reduced forms will always be identified
by the contents of the "value" field.
Examples of typical stack data are:
value
data
final ->
CON START
41 'A'
event = R GRAPHIC
(the letter "A")
final ->
CON START
00
event = R CONTROL
(carriage return)
final ->
CON START
ES IN SEQ
SEQ_START
41 ' A'
28 ' ( ,
IB ESC
event = R ESC SEQ
(designate UK-into GO)
CS IGNORE
CS-PARAM
CS-PRIVATE
SEQ_START
68 ' h'
3
3F '?'
9B CSI
event = R CSI SEQ
parameter-value 3
DEC private char
(set 132 col mode)
72 'r'
14
start ->
CS IGNORE
CS-PARAM
CS-PARAM
SEQ_START
event = R CSI SEQ
parameter-value 14(hex)
zero or omitted parameter
(set scroll region from
line 1 to line 18)
final ->
start ->
CS IGNORE
SEQ_START
72 ' p'
90 DCS
event = R DCS SEQ
(begin REGIS DCS)
final ->
CON START
9C ST
event = R CONTROL
(string terminator)
start ->
final ->
start ->
final ->
o
9B CSI
Errors And Exceptions
The parser ignores any invalid sequences it receives.
No control function is recognized, and the parser resynchronizes
the input stream according to the rules for error recovery in
DEC STD 138-0.
mDmDomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-39
Digital Internal Use Only
To summarize:
o
ESC restarts any escape, control, or control string
introducer sequence in progress.
o
CAN and SUB immediately cancel any escape, control, or
control string introducer sequence in progress. SUB is
recognized a~ a CO control if no sequence is in
progress.
o
All other CO controls are immediately recognized within
escape, control, ·or control string introducer sequences.
The escape, control, or control string introducer
sequence continues where it left off~
o
C1 controls immediately cancel any escape, control, or
control string introducer sequence in progress. The C1
control is then recognized normally.
This is for 7-bit
compatibility where C1 controls are represented by two
character Fe escape sequences.
Two character Fe escape sequences are converted to C1
controls by the parser.
o
Within escape, control, and control string introducer
sequences, eight-bit graphic codes (GR set) are
truncated to seven~bit codes.
o
If a private parameter character «, =, ), 1) occurs
after the first parameter, the entire sequence will be
ignored up to and including its final character.
o
If a parameter character occurs after the first
intermediate character, the entire sequence will be
ignored up to and including its final character.
o
The parser recognizes parameter values up to
16383 (14 bits) as specified by the constant
MAX PARAMETER VALUE in "gparse.h".
If a parameter
exceeds the maximum value, the parameter will be set
_to the maximum value.
o
The parser recognizes up to 16 parameters in a
single parameter sequence as specified by the
constant MAX NUM PARAMETERS in "gparse.h".
If more
than MAX NUM-PARAMETERS are received, parameters
beyond the maximum number are ignored and the "value"
field for the last parameter will be set to
"cs IGNORE pIt (this may be used to detect that
parametershave been ignored). The sequence will
still be recognized if it is othe~wise valid.
mDmDomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-40
Digital Internal Use Only
o
The parser will recognize up to three intermediate
characters in a single escape, control~ or introducer
sequence specified by the constant MAX NUM INTERMEDIATES
in "gparse.h". If more than MAX NUM INTERMEDIATES are
received, the entire sequence will be ignored up to and
including its final character.
o
DCS introducer sequences are parsed according to the
rules for control sequences. APC, OSC,-and PM
introducer sequences are parsed according to the rules
for escape sequences. The parser recognizes the
introduc~r sequence upon receiving a valid final
character. The parser does not keep track of whether
a control string is in progress. Therefore it is
possible to receive control codes, escape sequences,
and control sequences within a control string~ Handling
of control strings must be performed at a higher level
than the parser.
Each intermediate character requires one stack entry. Each
parameter value also requires one stack entry. The default stack
size of 32 is sufficient to hold a sequence starting character, a
private parameter character, 16 parameters, 3 intermediates, and
still recognize nested CO control characters. If the maximum
number of parameters or intermediates are increased, the stack
size should be increased accordingly. If the stack overflows,
the parser will re-initialize the stack, and return with event
PARSE ERROR.
*/
#include "gparse.h"
#include "lparse.h"
/. global parse definitions */
/* local parse definitions */
/* escape sequence parse table */
/*
eseq_parse_table[input+from_state]
-->
char eseq parse table[16] {
-
-
/* input: ES CONTROL */
/* from state
action
to state
*/
/*
----=----------------------=-------*/
/* SEQ START */
CONTROL I ES IN SEQ,
/* CON-START */
/* ES IN SEQ */
/* ES-IGNORE */
/* input: ES_INTER
mDmDomD™
CONTROL I CON START,
CONTROL I ES IN SEQ,
CONTROL I ES:IGNORE,
*/
action, to_state
*/
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-41
-Digital Internal Use Only
/* from state
action
to state
/* CON-START */
/* ES IN SEQ */
/* ES-IGNORE */
GRAPHIC
I CON START,
CONTINUE I ES IN SEQ,
IGNORE
I ES=IGNORE,
*/
/*
----=----------------------=-------*/
/* SEQ START */
CONTINUE I ES IN SEQ,
/* input: ES FINAL
*/
/* from state
action
to state
*/
/* ----=----------------------=-------*/
/* SEQ START */
ESC SEQ I CON START,
/* CON-START */
/* ES IN SEQ */
/* ES-IGNORE */
GRAPHIC
ESC SEQ
CANCEL
I CON-START,
I CON-START,
I ES_IGNORE,
/* input: ES GRPAHIC */
/* from state
action
to state
*/
/* ----=----------------------=-------*/
SEQ START */
PARSE ERROR I ES IN SEQ,
/*
/*
/*
/*
GRAPHIC
I CON START,
PARSE ERROR I ES IN SEQ,
PARSE-ERROR I ES-IGNORE
CON-START */
ES IN SEQ */
ES-IGNORE */
};
/* control sequense parse table */
/* pseq_parse_table[input+from_state]
char pseq parse table[42]
{
-
-
==>
action,to_state
=
/* input: PI CONTROL */
/* from state
action
to state
*/
/*
----=--------------------------=-------*/
/* SEQ START
*/
CONTROL I CS IGNORE,
/*
/*
/*
/*
/*
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P
*/
*/
*/
*/
*/
CONTROL
CONTROL
CONTROL
CONTROL
CONTROL
I
I
I
I
CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
I CS=IGNORE_P,
/* input: PI PRIVATE */
/* from state
action
to state
/*
/*
*/
----=--------------------------=~------*/
SEQ START
*/
CONTINUE I CS PRIVATE,
/* CS PRIVATE */
CONTINUE I CS-IGNORE,
/* CS-PARAM
/* CS-INTER
/* CS-IGNORE
/* CS-IGNORE P
*/
*/
*/
*/
CONTINUE
CONTINUE
IGNORE
IGNORE
/* input: PI_NUMERAL */
I
I
I
I
CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
CS=IGNORE,
*/
EL-00070-03
VSRM - Code Extension Layer
/* from state
14-Apr-1989
Page 3-42
Digital Internal Use Only
action
to state
*/
/* ----=--------------------------=-------*/
/*
/*
/*
/*
/*
/*
SEQ START
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE_P
*/
*/
*/
*/
*/
*/
PARAM
PARAM
PARAM
CONTINUE
IGNORE
IGNORE
1
CS PARAM,
1
CS-PARAM,
I CS-PARAM,
I CS-IGNORE,
I CS-IGNORE,
I CS:IGNORE_P,
/* input: PI SEMICOL */
/* from state
action
to state
/* SEQ START
/* CS PRIVATE
/* CS-PARAM
/* CS-INTER
/* CS-IGNORE
/* CS-IGNORE P
CS PARAM,
CS-PARAM,
CS-PARAM,
CS-IGNORE,
CS-IGNORE,
CS:IGNORE_P,
*/
/* ----=--------------------------=-------*/
/*
/*
/*
/*
/*
/*
/*
/*
/*
I
1
1
1
>
I
I
I
I
1
I
I
,I
1
1
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
*/
*/
*/
*/
*/
*/
PARAM
PARAM
PARAM
CONTINUE
IGNORE
IGNORE
input: PI INTER */
from state
action
to state
*/
----=--------------------------=-------*/
SEQ START,
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P
*/
*/
*/
*/
*/
*/
CONTINUE
CONTINUE
CONTINUE
CONTINUE
IGNORE
CONTINUE
I CS INTER,
1
CS-INTER,
1
1
CS-INTER,
CS-IGNORE,
CS:INTER,
I CS-INTER,
1
input: PI FINAL */
from_state
action
to_state
*/
---------------------------------------*/
SEQ START
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P
*'/
*/
*/
*/
*/
*/.
I CS IGNORE,
PAR SEQ
PAR-SEQ
PAR-SEQ
PAR-SEQ
CANCEL
PAR_SEQ
1
1
1
1
I
input: PI OTHER */
from state
action
CS-IGNOaE,
CS-IGNORE,
CS-IGNORE,
CS-IGNORE,
CS:IGNORE,
to state
*/
----=--------------------------=-------*/
SEQ START
CS PRIVATE
CS-PARAM
CS-INTER
CS-IGNORE
CS-IGNORE P
};
mDmDomD™
*/
*/
*/
*/
*/
*/
CONTINUE
CONTINUE
CONTINUE
CONTINUE
IGNORE
CONTINUE
1
1
I
I
1
1
CS IGNORE,
CS-IGNORE,
CS-IGNORE,
CS-rGNORE,
CS-IGNORE,
CS-IGNORE
EL-00070-03
VSRM - Code Extension Layer
l4-Apr-l989 .
Page 3-43
Digital Internal Use Only
/* shorthand for "Stack Pointer" of parse stack */
#define SP state->index
/*************************************
** parse_init - initialize parse state
**************************************/
parse_init(state)
struct parse stack *state;
-
{
state->index = 0;
state->class[O] = CON;
state->value[O] - CON_START;
return(O);
/*******************************************************
*
*
* parse ansi - callable re-entrant ansi parser executive
-
********************************************************/
parse_ansi(c, state, event, start, final)
struct parse_stack *state;
int
int
int
int
c;
*event;
*start;
*final;
/*
/*
/*
/*
input
event
stack
stack
/* address of parse stack structure */
character */
recognized (by ref) */
index of first char of event (by ref) */
index of final char of event (by ref) */
{
int action, i;
/* .............................................. * /
/* if in sequence, convert 8 bit graphics to 7 bits */
if (state->class[SP] <- LAST SEQ)
if (c >= OxAO) c &= Ox7F;
/* invoke appropriate parser based on state class */
switch (state->class[SP])
{
case CON:
/* parse graphic and CONtrol characters */
action = parse(state, c, eseq_class(c), eseq_parse_table);
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-44
Digital Internal Use Only
break;
case ESEQ:
/* parse escape sequences */
action = parse(state, c, eseq_class(c), eseq_parse_table)i
/* check for too many intermediates */
i = 0;
while (state->value{SP-i] == ES IN SEQ)
- -
{
i++;
if (i > MAX NUM INTERMEDIATES)
{
--
/* ignore sequence (but parse until final) */
state->value[SP] = ES_IGNORE;
}
}
break;
case CSI: .
case DCS:
/* parse parameter sequence */
action = parse(state, c, .pseq_class(c), pseq_parse_table);
/* check for too many intermediates */
i - 0;
while (state->value[SP-i] == CS INTER)
-
{
i++;
if (i > MAX NUM INTERMEDIATES)
{
--
/* ignore sequence (but parse until final) */
state->value[SP] = CS_IGNORE;
}
}
break;
}
/* process recognized events */
switch (action)
{
case CONTINUE:
*event = R_CONTINUE;
break;
case GRAPHIC:
*event = R GRAPHIC;
*start = SP;
*final = SP;
SP -= 1;
break;
case CONTROL:
pcontrol(state, event, start, final);
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-45
Digital Internal Use Only
break;
case ESC SEQ:
pescseq(state, event, start, final);
break;
case PAR SEQ:
*final = SP;
/* find start of sequence */
*start - SP;
while (state->value[*start] !- SEQ_START) *start -- 1;
switch (state->data[*start])
{
case Ox9B: *event - R CSI SEQ; break;
case Ox90: *event - R-DCS-SEQ; break;
default:
*event = R=PARSE_ERROR; break;
}
/* remove seq from parse stack,
and return to previous parser */
SP - *start - 1;
break;
case PARAM:
/* input was either a numeral, or a semicolon,
reduce parameter chars to parameter value
if current char is a numeral then
if prev is a value, mul by 10, add current,
range check.
else store current as a value.
else if current is a semicolon
store value of zero
if prev is not a value,
advance stack and store a value of zero.
finally, check for -too many parameters.
*/
*event = R CONTINUE;
-/* remember stack pointer */
i = SP;
if (state->data[SP] != Ox3B)
{
/* numeral */
if (state->value[SP-1] == CS_PARAM)
{
SP -= 1;
if (state->data[SP] > MAX PARAMETER VALUE/10)
state->data[SP] = MAX=PARAMETER=VALUE;
else
{
state->data[SP] *= 10;
state->data[SP] += state->data[SP+1] - Ox30;
if (state->data[SP] > MAX PARAMETER VALUE)
state->data[SP] = MAX=PARAMETER=VALUE;
}
}
else
state->data[SP]
}
else
~DmDDmDTM
-=
Ox30;
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Digital
In~ernal
Page 3-46
Use Only
{
/* semicolon */
state->data[SP] ... 0;
if (state->value[SP-1] 1- CS_PARAM)
{
SP +- 1;
state->class[SP] - state->class[SP-1];
state->value[SP] ... CS PARAM;
state->data[SP) ... 0;
}
}
/* check for too many parameters */
if (SP >- i)
/* did we add a parameter?
~/
{
i ... 0;
while (state->value[SP-i] -- CS_PARAM)
{
i++;
if (i > MAX NUM PARAMETERS)
{
--
/* ignore last parameter */
SP -= 1;
/* ignore any further parameters */
state~>value[SP] - CS IGNORE P;
--
}
}
}
break;
case CANCEL:
if (state->class[SP] <- LAST_SEQ)
{
while (state->value[SP] 1= SEQ_START) SP -- 1;
SP -- 1;
}
*event = R_CONTINUE;
break;
case IGNORE:
*event = R_CONTINUE;
SP -- 1;
break;
default:
*event ... R PARSE ERROR;
parse initTstateT;
/* re-initialize */
breakT
}
/* end switch event */
return(*event);
}
/* end routine parse_ansi
mDmDomD™
~/
EL-00070-03
VSRM - Code Extension Layer
l4-Apr-l989
page 3-47
Digital Internal Use Only
/*************************************************************
** eseq class - return escape sequence parser input class
*
of given character.
*
**************************************************************/
eseq class(c)
int
{
c;
int c class;
/* ... '7 ................. * /
/* determine character class */
if (Ox20 <= c && C <= Ox2F)
c class "" ES INTER;
else If ( (OxOO <= C && C <= OxlF)
(Ox7F <= c && C <= Ox9F)
(c "". OxFF) )
c class"" ES CONTROL;
else If (Ox30 <.-c && c <- Ox7E)
c class - ES_FINAL;
else
c class"" ES_GRAPHIC;
II
II
return(c class);
-
}
/*************************************************************
*
*
*
pseq class - return parameter sequence parser input class of
given character.
*
**************************************************************/
pseq class(c)
int
{
c;
int pi_class;
/* ..................... * /
/* determine character class */
if (Ox30 <- c && c <= Ox39)
pi class = PI NUMERAL;
else if (c == Ox3B)
pi class"" PI SEMICOL;
else if (Ox20 <=
&& C <= Ox2F)
pi class = PI INTER;
else if (Ox3C <=
&& c <- Ox3F)
pi_class = PI_PRIVATE;
c
c
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-48
Digital Internal Use Only
else if (Ox40 <= c && c <= Ox7E)
pi class = PI FINAL;
else if ( (OxOO <~ C && C <= OxlF)
(Ox7F <= c && c <,. Ox9F)
(c == OxFF) )
pi class = PI CONTROL;
else pi_class = PI_OTHER;
II
II
return(pi class);
}
-
/*******************************************
*
* parse - table driven parse routine
**
returns the following events:
PARSE ERROR
CONTINUE
GRAPHIC
CONTROL
ESC SEQ
CON-SEQ
'* PARAM
*
CANCEL
*
IGNORE
*
*
* The parser is a table driven finite state automata,
* where the next state and action are a function of
* the current state and input.
*
*
*
*
*
*
*********************************************/
parse(state, c, c_class, parse_table)
struct parse stack *state;
int c;
int c class;
char parse_tablet];
/*
/*
/*
/*
parse
input
input
parse
stack
character
class
table
*/
*/
*/
*/
{
int next action;
int current state;
int next_state;
/* ................................... */
/* get next state */
current state - state->value{SP);
next_state = parse_table[c_class + current_state] & OxOF;
/* get action */
next_action - parse_table[c_class + current_state] & OxFO;
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-49
Digital Internal Use Only
/* default action */
if (SP >- STACK SIZE) return(PARSE_ERROR);
SP +- 1;
state->class[SP] = state->class[SP-1];
state->value[SP] = next state;
state->data[SP] - c;
/* return action */
return(next_action);
/* end routine parse */
/*****************************************
*
* pcontrol - process controls that alter
*
the parse state.
*
******************************************/
pcontrol(state, event, start, final)
struct parse stack *state;
int *event; int *start;
int *final;
{
int sp, code;
/* ...............
0. . . .
*/
sp = state->index;
code = state->data[sp];
/* ESC */
if (code == OxIS)
{
/* if already in escape or control sequence, restart it */
if (state->class[sp] <= LAST SEQ)
while (state->value[sp] 1= SEQ START) sp -= 1;
state->class[sp] = ESEQ;
/* switch to escape seq parser */
state->value[sp] = SEQ START;
state~>data[sp] = OxIsT
state->index = sp;
*event - R CONTINUE;
return( 0) ;}
/* CAN */
if (code == Ox18)
{
/* if already in escape or control sequence, cancel it */
if (state->class[sp] <= LAST SEQ)
{
-
while (state->value[sp] 1= SEQ_START) sp
~DmDDmDTM
-=
1;
EL-00071)-03
VSRM - Code Extension Layer
Page 3-50
Digital Internal Use Only
14-Apr~1989
}
state->index • sp - 1;
*event - R CONTINUE;
return(O) ;}
/* SUB */
if (code --
~x1A)
{
/* if already in escape or control sequence, cancel it */
if (state->class(sp] <- LAST SEQ)
-
{
while (state->value(sp] 1- SEQ_START) sp -- 1;
state->index - sp-1;
*event - R CONTINUE;
}
else
{
/* not in sequence, recognize SUB */
*event - R CONTROL;
*start - sp;
*final - sp;
state->index - sp;
}
return(O) ;
}
/* is it a C1 control? */
if (code> Ox7F)
{
/* if already in escape or control sequence, cancel it */
if (state->class[sp] <- LAST SEQ)
while (state->value(sp] T= SEQ_START) sp -- 1;
/* CSI */
if (code -- Ox9B)
(
./* switch to parameter seq" parser */
state->class(sp] = CSI;
state->value(sp] - SEQ START;
state->data(sp] - codei
state->index = SPI
*event - R CONTINUE;
return( 0) ;}
/* DCS */
if·(code -- Ox90)
{
/* switch to parameter seq parser */
state->class(sp] = DCS;
.
.
mDmOOmD™
EL-00070-03
VSRM - Code Extension Layer
14~Apr-1989
. Page 3-51
Digital Internal Use Only
state->value[sp] = SEQ START;
state->data[sp] = code;
state->index = SPi
*event = R CONTINUE;
return( 0) ;}
/* OSC, PM, APe */
if ( (code -- Ox9D)
II (code -- Ox9E) II (code -- Ox9F) )
{
/* switch to escape sequence parser */
state->class[sp] - ESEQ;
state->value[sp] - SEQ START;
state->data[sp] - code;
state->index - sp;
*event - R CONTINUE;
return( 0) ;}
}
/* end C1 control */
/* recognize other controls */
*event - R CONTROL;
state->data[sp] - code;
*start - sp;
*final - sp;
/* remove control character from parse stack */
state->index = sp - 1;
return(O);
}
momDDmo™
l4-Apr-l989
Page 3-52
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
/*************************************
*
* pescseq - process escape sequences
*
that alter the parse state.
*
**************************************/
pescseq(state, event, start, final)
struct parse stack *state;
int *event; int *start;
int *final;
{
int sp;
/* ..................... */
sp - state->index;
/* two character escape sequence ? */
if (state->data(sp-l) -- OxlB)
{
/* convert 7-bit Fe sequences to el controls */
if «Ox40 <-"state->data(sp) && (state->data(sp) <- Ox5F»
(
/* store el control */
state->data(sp-1J - state->data(sp) + Ox40;
state->index - sp-l;
/* steal code from pcontrol */
pcontrol(state, event, start, final);
return(O);
}
}
II
I
I
I
I
I
I
I
I
I
I
I
I
/* recognize other escape sequences */
/* find start of sequence */
while (state->value(sp) !- SEQ START) sp -- 1;
*start - sp;
*final - state->index;
switch (state->data[*start)
-
{
case OxlB:
case Ox9D:
case Ox9E:
case Ox9F:
default:
}
state->index
return( 0) ;
}
-
*event
R ESC SEQ; break;
*event - R-OSe-SEQ; break;
*event - R:PM_SEQ; break;
*event - R APe SEQ; break;
R-PARSE ERROR; break;
*event
-
*start
-
1;
-
/* remove seq from parse stack */
/* end routine pescseq */
mDmDomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-53
Digital Internal Use Only
/********************** module ptexec.c **************
**
*
This module contains the parser test executive.
It reads characters from the keyboard and dumps the
* parse stack when a control function is recognized.
**
**
**
*
*
*
*
*
*
*
*
Environment:
Author:
VAX/VMS
Peter Sichel
24-Feb-1984
Modification history
8-May-1984
T. Lasko
Made Ay (power off) cleaner.
9-MAY-1984
T. Lasko
Fixed several protocols.
13-Nov-1984
P. Sichel
Added OSC, PM, and APC control strings
9-May-1988
P. Sichel
Cosmetic changes for inclusion in VSRM
.*/
"EL-00070-03
VSRM - Code Extension Layer
linclude
linclude "qparse.h"
linclude "lparse.h"
/* qlobal parse definitions */
/* local parse definitions */
/* qlobal storaqe */
extern int poweron;
/* module wide storaqe */
struct parse_stack kbd_state;
static char *eseq_state[3] {
"SEQ START",
"CON-START",
"ES IN SEQ"
};
-
-
static char *pseq state[6] {
"SEQ START",
"CS PRIVATE",
"CS-PARAM",
"CS-INTER" ,
"CS-IGNORE",
-"CS-IGNORE P"
} ;
-
.
mOmDDmD™
14-Apr-1989
Paqe 3-54
.
Diqital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
page 3-55
Digital Internal Use Only
/*******************************************
*
*
*
*
*
ptstart()This is the startup routine for the parser tester.
It simply initializes the internal state and the terminal
screen, then calls the executive loop, which returns when
we give it a Ay (power turns off).
*
**********************************************/
ptstart()
{
unsigned short n;
/* erase screen, move cursor to home */
printf("\33[2J\33[H");
printf("A N S I P a r s e r
T e s t e r\n");
printf("
Press Ay to exit \n\n");
parse init(&kbd state);
poweron - 1;
/* ready .... */
set_passall();
execloop()i
/* go! */
set nopassall();
return(O);
/* when power off ... return */
}
EL-00070-03
.
VSRM - Code Extension Layer
I
I
I
I
I
I
I
I
14-Apr-1989
Page 3-56
Digital Internal Use Only
/*******************************************
*
* execloop - parser test executive
*
********************************************/
execloop ( )
{
l i n t c;
int event, start, final, ii
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
/* .............................................. */
while (poweron)
{
/* get character from KEYBOARD and parse it */
c - readkbd();
parse_ansi(c,
&kbd~state,
&event, &start, &final);
/* process recognized events */
switch (event)
{
case R CONTINUE:
break;
case R GRAPHIC:
prIntf( "\nR GRAPHIC:");
ptdump(&kbd-state, start,
break;case R CONTROLi
prIntf("\nR CONTROL:");
ptdump(&kbd-state, start,
break;case R ESC SEQ:
prIntfT"\nR ESC SEQ:");
ptdump(&kbd-state, start,
break;case R CSI SEQ:
prIntfT"\nR CSI SEQ:");
ptdump(&kbd-state, start,
break;case R DCS SEQ:
prIntfT"\nR DCS SEQ:");
ptdump(&kbd-state, start,
break;case R OSC SEQ:
prIntfT"\nR OSC SEQ:");
ptdump( &kbd-state, start,
break;case R PM SEQ:
prInt!("\nR PM SEQ:");
ptdump(&kbd-state, start,
break;-
~DmDDmDTM
final);
final);
final);
final);
final);
final);
final);
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-57
Digital Internal Use Only
case R APC SEQ:
prIntfT"\nR APC SEQ:");
ptdump(&kbd-state, start, final);
break;
default:
printf("\nR PARSE ERROR:");
ptdump(&kbd-state~ start, final);
break;
}
/* end switch case */
}
/* while (poweron) */
return(O);
}
/* end routine execloop */
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-58
Digital Internal Use Only
/**********************************
**
ptdump - parser test stack dump
*
***********************************/
ptdump( state, start, final)
-
struct parse stack *state;
int start, final;
{
int i;
for (i-start; i<=final; i++)
{
printf("\n
");
switch (state->class[i])
{
case ESEQ:
printf("ESEQ
break;
case CSI:
printf("CSI
break;
case DCS:
printf("DCS
break;
case CON:
printf("CON
break;
default:
printf("???
%-lls", eseq_state[state->value[i]]);
%-lls", pseq_state[state->value[i]]);
%-11s", pseq_state[state->value[i]])i
%-lls", eseq_state[state->value[i]]);
%02x
", state->value[i]);
if (state->data[i] < 16) printf(" %02x ", state->data[i]);
else printf("%4x ", state->data[l]);
if «Ox1F < state->data[l]) && (state->data[i] < Ox7F»
putchar«int)state->data[i);
}
r.eturn ( 0 ) ;
};
mDmDDmD™
EL-00070-03
VSRM - Code Extension Layer
3.6
14-Apr-1989
Page 3-59
Digital Internal Use Only
GRAPHIC CODE EXTENSION TECHNIQUES
In a 7-bit environment, the basic graphics' portion of the code
table consists of a single 94- or 96-character set.
In an 8-bit
environment, this is supplemented with an additional 94- or
96-character set, and the two sets are referred to as the GL set
(left half graphics, corresponding to the single set in 7-bits),
and the GR set (right half).
In both environments, the graphic
codes in the table can be further extended by the designation and
invocation of a potentially unlimited repertory of graphics sets.
This is implemented by the provisi~nof four sets of 94 or 96
graphic characters, referred to as the GO, G1, G2, and G3 sets.
Character sets may be designated to any of the four G-sets, which
may be currently or subsequently invoked into either the GL or GR
positions in the code table.
3.6.1
DESCRIPTION OF SHIFT FUNCTIONS
Shift functions are used to invoke one of the G-sets into the left
or right half side of the code table. There are two kinds of
shift functions:
lodking shifts and single shifts. Locking
shifts cause a G-set to be permanently invoked into the code
table, where it will remain until another shift function occurs to
replace it. Single shifts cause a G-set to be invoked only for
the occurrence of the single character code following the single
shift control in the code stream, after which the table reverts to
its previous state before the shift occurred.
.
For example, if on power-up the ASCII character set is designated
into GO and G1, and GO is invoked into GL, then any graphic codes
in the GL portion of the table (2/1 'through 7/14) will cause an
ASCII character to be generated. Subsequently, the Line Drawing
character set may be designated into G1 to replace ASCII in that
G-set. No visible effect will occur until G1 is invoked into GL
using a shift function.
Thereafter, any GL graphic codes received
will cause Line Drawing characters to be displayed.
~DmDDmDTM
Page 3-60
l4-Apr-l989
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
ASCII C
Supplemental_C
+--+
+--+
I
I
I
I
I
I
I
I
I
I
I
I
I
I
Control Sets
I
I
I
I
I
I
+--+
+--+
V
v
I
v
v
designate
& invoke:
I
C -> CO - ESC !
C -> Cl - ESC "
F
F
+--++-----+--++-----+
I ++
I ++
I
I I
ICOI
I I
I I
ICll
I I
GL
GR
I
I
I
In Use Table
I I
++
I
++
+--+-----++--+-----++
invoke:
I I
+--------+ +---+----+
I
I
+---+-----+---------+
I
I
I
I
+-----+ .++-----+
++
I ++
I
I
I
I
I
I
I
GO
I
I
I
I
I
I
I
I
I
++
+-----+
I
I
I
++-----+
++
I
++-----+
++
I
G2
G3
I
I
I
I
I
Gl
I
I
++
+-----++
I
I
I
I
++
+-----++
I
I
I
I
I
I
I
GO
Gl
G2
G3
Gl
G2
G3
->
->
->
->
->
->
->
GL
GL
GL
GL
GR
GR
GR
- LSO ( SI )
LSl (SO)
= LS2, SS2
- LS3, SS3
- LSlR
= LS2R
- LS3R
=
Designated
Graphic Sets
++
+-----++
+---------+----+----+---------+
I
I
I
designate: ESC
+---------+---------+----
I
I
I
+-----+
++
I
+------+
++-----+
++
I
I
I 94
I
I Char I
++
I
+-----+
I
I
I 96
I Char
I
+------+
I
I
I
++
I
+-----++
---+
++-----+
++
I
. . .
I
I
I
I
I
I
I
++
+---:---++
Repertory of Graphic Character Sets
I
94 Chars:
GO = (
Gl = )
G2 = *
G3 = +
F
96 Chars:
=
ASCII G
UPSS
=
Line Drawing
DEC Supplemental =
ISO-Latin-l
=
DRCS (as defined,
94 or 96)
Figure S. Designating and Invoking Control and Graphic
Character Sets into the Eight-bit In Use Table
mDmDomD™
Gl =
G2 =
G3 =
/
B
<
0
%5
A (96)
EL-00070-03
VSRM - Code Extension Layer
3.6.1.1
14-Apr-1989
Page 3-61
Digital Internal Use Only
Locking Shifts
Conforming terminal products will provide the following locking
shift functions in Level 1 operation.
Name
Code
LSO
LS1
LS2
LS3
*
*
Locking
Locking
Locking
Locking
Shift
Shift
Shift
Shift
Zero
One
Two
Three
G-set
invoked
Table
position
GO
GL
GL
GL
GL
G1
G2
G3
* Note - The functions Locking Shift Zero and Locking Shift One
have been previously referred to as Shift In (SI) and Shift Out
(SO). The effect of executing these controls has not been
changed.
Conforming terminals will provide the following additional locking
shift functions in Level 2 operation.
Code
Name
G-set
invoked
Table
position
LS1R
LS2R
LS3R
Locking Shift One Right
Locking Shift Two Right
Locking Shift Three Right
G1
G2
G3
GR
GR
GR
The following bit combinations are not affected by the use of the
locking shifts.
a.
Those corresponding to control characters in columns 00,
01, 08, and 09
b.
Those corresponding to the character Space (SP) in
position 2/0, and Delete (DEL) in position 7/15 when a
94-character set is invoked into GL
c.
Those corresponding to positions 10/0 and 15/15 when a
94-character set is invoked into GR
d.
Those included in any escape or control sequence (see
notes to subheadings 3.5.2 Escape Sequences and 3.5.3
Control Sequences for a full explanation of the use of
bit combinations within escape and control sequences)
e.
The bit combination following a single shift function
(SS2 or SS3)
EL-00070-03
VSRM - Code Extension Layer
3.6.1.2
14-Apr-1989
Page 3-62
Digital Internal Use Only
Single Shift Functions
Conforming terminal products will provide the following single
shift functions in both 7-bit and 8-bit environments.
Code
Name
G-set
invoked
Table
position
SS2
SS3
Single Shift Two
Single Shift Three
G2
G3
GL
GL
3.6.2
DESIGNATING CHARACTER SETS
Each terminal shall maintain a repertory of available character
sets, which may be designated to any of the four G-sets (note
there is no direct way to designate a 96 character set into GO).
Once a character set is designated to a G-set, it remains in that
set until explicitly replaced by another character set designator.
If the G-set is invoked into the code table at the time the
character set is designated, it immediately replaces the existing
set in the code table.
Note: For a complete description of conforming software use of
the designating and invoking controls, see DEC STD 070-1. DEC STD
70 addresses conformance of software when communicating directly
with a presentation device, or when writing data to a file that is
intended only for subsequent transmission to a presentation
device. It does not address conformance of software when
processing terminal input or when writing data to a file that is
intended for subsequent processing by application software.
DEC STD 169-0 DEC Standard Coded Graphic Character Sets for
Hardware and Software requires that when data is intended for
subsequent processing conforming software shall not use either
locking shift or single shift functions. This requirement is in
fact a subset of the conformance requirements defined in this
document, therefore the two documents do conflict.
3.6.3
THE USER PREFERENCE SUPPLEMENTAL SET (UPSS)
The User Preference supplemental Set is a logical character set
name similar in concept to a G-set (GO-G3) but at the next higher
level. The UPSS allows one level of software indirection for
deSignating supplemental character sets. The UPSS is designated
and invoked like any other character set, but the character set
used can be selected by the user as a SETUP option or by host
control function in response to a user request.
The UPSS was introduced to facilitate migration from DEC-MCS to
ISO Latin-1. Software applicati~ns that do not need to be
concerned with which supplemental character set is used can defer
·mDmODmD™
EL-00070-03
VSRM - code Extension Layer
l4-Apr-1989
Page 3-63
Digital Internal Use Only
the choice of a specific supplemental set to the user, thus not
imposing a choice that might interfere with the customers
migration plan. The designating sequence previously used for DEC
Supplemental was changed to designate the UPSS, providing
automatic transparent migration from DEC MCS to ISO Latin-l for
existing applications as soon as terminal devices can support ISO
Latin-I.
The concept of a User Preference Supplemental Set also accomodates
existing CSS Specials that used the old DEC Supplemental
designating sequence to designate a local country specific
character set.
Support for the UPSS is part of the 8-bit Interface Architecture
Extension to Level 2, and required for conformance to Level 3. As
a minimum, the UPSS must be selectable between DEC Supplemental
and ISO Latin-l supplemental. The UPSS also establishes the
initial supplemental set for display (defaults to G2 on power-up),
and determines the keyboard supplemental character set when 8-bit
multinational characters are enabled.
See DEC STD 070-6.
typedef enum
/* upss_type */
{
UPSS DEC SUPPLEMENTAL G, UPSS ISO LATINI SUPPLEMENTAL G
} upss type;
upss_type upss;
3.6.4
DEFAULT DESIGNATION AND INVOCATION
The following assignments will apply to the power-on and soft
reset states of the terminal.
3.6.4.1
Levell
In Level 1 operation, the default character set designations will
be ASCII in GO, Gl, G2, and G3.
Furthermore, the GO set (ASCII)
will be invoked into the GL position of the In Use Table.
Levell
operation is 7-bits only.
3.6.4.2
Level 2 (without a-bit Interface Architecture Extension)
In Level 2 operation, the default character set designations will
be ASCII in GO and Gl, and the DEC Supplemental graphics set in G2
and G3.
Furthermore, the GO set (ASCII) will be invoked into the
GL position of the In Use Table, and the G2 set (DEC Supplemental
graphics) will be invoked into the GR position of the In Use
Table.
EL-00070-03
VSRM - Code Extension Layer
3.6.4.3
Page 3-64
Digital Internal US& Only
14-Apr~1989
Level 3 (or Level 2 with 8-bit Interface Architecture
Extension)
In Level 3 operation, the default character set designations will
be ASCII in GO and G1, and the User Preference Supplemental Set
(UPSS) in G2 and G3. Furthermore, the GO set (ASCII) will be
invoked into the GL position of the In Use Table, and the G2 set
(UPSS, typically DEC Supplemental or ISO Latin-1 supplemental)
will be invoked into the GR position of the In Use Table.
Level 3 (or Level 2 with the 8-bit Interface Architecture
Extension) also recognizes the "Announce Subset Of Code Extension
Facilities" defined in ISO 4873 which re-initialize the designated
and invoked character sets as described later in this chapter.
3.6.4.4
NRCS Extension
When the NRCS Extension is present, ASCII may be replaced with a
I . National Replacement Character set as a Set-Up option. In this
I case, the default character set designations will be the NRCS in
I GO, G1, G2, and G3, with GO in GL. National Replacement Character
I Sets are intended for backward compatibility and may be used as
I above in Levell, Level 2, and Level 3 by selecting "7-bit NRCS
I Characters" in Set-Up or setting DECNRCM (National Replacement
I r.haracter set Mode) from the host. Setting this mode has the side
I effect of resetting the display character sets to their default
I state as described above. Note that the NRC Mode is 7-bits only,
I GR is not available: The actual NRC set used is determined by the
I "Keyboard Dialect", and the selection of "Typewriter" or "Data
I processing" keys. See DEC STD 070-6 for more information.
EL-00070-03
VSRM - Code Extension Layer
3.7
14-Apr-1989
Page 3-65
Digital Internal Use Only
STATE DESCRIPTIONS
3.7.1
CONTROL SETS
At the present time the CO and Cl control sets are fixed as the
ANSI control sets defined in ANSI X3.4 - 1986 and ISO 6429: 1988.
typedef enum
/* cO_control_set_type */
{
ASCII C
} cO_control_set_type;
typedef enum
/* cl_control_set_type */
{
SUPPLEMENTAL C
} cl_control:set_type;
3.7.2
G-SETS
Graphic character sets are defined for each service class.
(S~e
DEC STD 070-5 Video Systems Reference Manual
Character Cell
Display for a complete description of the available character sets
and designating sequences.) The actual character sets available
will vary for different conformance levels and extensions (NRCS,
8-bit lA, TCS) ).
Four character sets may be designated at any
time, each into one of th~ four G-sets, which may be subsequently
invoked into the In Use Table.
=
typedefenum
{
ASCII G,
LINE DRAWING G,
DEC SUPPLEMENTAL G,
ISO-LATIN! SUPPLEMENTAL_G,
/* a-bit IA */
UPSS G
/* a-bit IA */
} graphic_character_set_type;
3.7.3
IN USE TABLE
Mapping of received control functions and graphic character data
is provided by the 8-bit code table, as described above. Since
the 8-bit table is a superset of the 7-bit table, all references
will be to the 8-bit table in both environments.
typedef enum
/* gset_name_type */
{
GO, Gl, G2, G3
} gset_name_type;
typedef struct
/* in_use_table_type */
{
cO_control_set_type
cO;
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-66
Digi tal Internal Use On"ly
graphic character set type
gset_name_type
-
gl;
invoked_gl;
cl control set type
graphic character set type
gset name" type
} in:use_table_type;
cl;
gr;
invoked_gri
in_use_table_type in_use_table;
3.7.4
SINGLE SHIFT FUNCTIONS
Since single shift controls affect the processing of the next
graphic character in the received data stream, it is necessary to
retain their occurrence until subsequent processing occurs.
typedef enum
/* single_shift_type */
{
NONE, SS2, SS3
}single_shift_type;
single_shift_type single_shift;
3.7.5
ENVIRONMENTS
The environment of the host port can be selected for either a
seven or eight bit data path in set-up. The environment of the
printer port can be selected independently of the host environment
as a set-up function.
See DEC STD 070-7 Video Systems Reference
Manual - Printer Port Extension.
Note that the logical environment for which each port is set "is
independent of the actual physical hardware setting of the ports,
and may in fact be different.
For example, it may be possible to
set the host port for an 8-bit environment, even though the
physical channel is limited by the hardware to 7-bits.
The
architecture assumes that the physical and logical settings are
compatible, and does not define the results when this is not the
case. The terminal characteristics are dependent on both the
environment and the conformance level of operation. However,
there are only three possible states for the terminal to be in
that this architecture specifies:
*
Level 1 operation
Host Port
transmit receive -
(Printer Port transmit -
7-bit controls
7-bit controls
7-bit graphics
7-bit graphics
7-bit controls
7-bit graphics)
* Level 2 or Level 3 operation, 7-bit Cl controls
•
mamDomD™
EL-00070-03
VSRM -" Code Extension Layer
Host Port
*
transmit
receive -
-
page 3-67
14-Apr-19a9
Digital Internal Use Only
7-bit controls
a-bit controls
a-bit graphics
a-bit graphics
Level 2 or Level 3 operation, a-bit C1 controls
Host Port
3.7.5.1
transmit receive
-
a-bit controls
a-bit controls
a-bit graphics
a-bit graphics
Level 1 - Host Port
Level 1 operation provides only for 7-bit communications. Thus,
in Level 1 all control and graphic characters can only be received
and transmitted in seven bits. The high order bit of all a-bit
characters received will be stripped by the terminal before any
processing occurs. All Cl controls will be transmitted by the
terminal as ESC Fe sequences. Only 7-bit characters will be
generated from the keyboard -(that is, attempts to generate a-bit
characters will fail).
3.7.5.2
Level 2 or Level 3 - Host Port
In Level 2 or Level 3 operation both 7-bit and a-bit
communications are supported. The terminal will accept C1 control
characters and GR graphic characters in both 7-bit and a-bit C1
Transmission Modes.
When 7-bit communications is selected (7-bit host port
environment), C1 controls will only be transmitted as ESC Fe
sequences, and only 7-bit characters will be generated from the
keyboard (that is, attempts to generate a-bit characters on line
will fail).
When a-bit communications is selected (a-bit host port
environment), the terminal can be selected to transmit C1 control
characters either as 7-bit ESC Fe sequences, or as a-bit control
characters. The terminal will generate GR characters from the
keyboard in eight bits.
I
I
I
I
I
I
I
I
I
typedef enum
/* environment_type */
{
SEVEN BIT, EIGHT BIT
} envIronment_type;
environment type
host port environment,
printer port environment,
c1_transmissIon_mode;
momDomD™
EL-00070-03
VSRM - Code Extension'Layer
3.8
14-Apr-1989
Page 3-68
Digital Internal Use Only
CONTROL OPERATIONS
3.8.1
ANNOUNCE SUBSET OF CODE EXTENSION FACILITIES
ANNOUNCE SUBSET OF CODE EXTENSION FACILITIES
Levels:
2X, 3
(8-bit Interface Architecture Extension)
Purpose: To indicate which subset of code extension facilities
defined in ISO 4873 conforming interchange will use.
Format:
ESC
SP
1/11
2/0
I
Level of conformance
---------+----------------------Level 1 of ISO 4873
L 4/12
M 4/13
N 4/14
Level 2 of ISO 4873
' Level 3 of ISO 4873
Description: This sequence announces the level of conformance
that the subsequent interchange will conform to. Conformance to
ISO 4873 requires some default designation and invocations on the
part of the terminal.
Upon receipt of a Levell, 2, or 3 announcer sequence, the
terminal will make the following desi9nations and invocations:
Level 1
ASCII is deSignated into GO
ISO Latin Alphabet Nr 1 supplemental is designated into Gl
GO is invoked into GL
Gl is invoked into GR
Level 2
ASCII is designated into GO
ISO.Latin Alphabet Nr 1 supplemental is designated into Gl
GO is invoked into GL
Gl is invoked into GR
Level 3
ASCII is designated into GO
GO is invoked into GL
NOTES:
Conformance to a subset of ISO 4873 code extension
and interchange is NOT equivalent to the Digital
conformance levels for Character Cell Display
terminals. These announcer sequences and DECSCL
both specify conformance levels, but to a
different standard (ISO 4873 in this case).
Any hard or soft terminal reset (receipt of RIS,
mDmDomD™ .
l4-Apr-l989
Page 3-69
Digital Internal Use Only
EL-00070-.03
VSRM - Code Extension Layer
DECSTR, or DECSCL, or issuing the RECALL function
from Set-Up), will cause the Terminal to reset the
"D~fault Designations And Invocations" as
described previously to conform with DEC STD
169-0.
Interchange conforming to ISO 4873 which issues a
RIS, DECSTR, or DECSCL, must subsequently send an
announcer sequence to regain the default ISO
designations and invocations.
State Affected:
graphic character set type
graphic-character-set-type
graphic-character-set-type
gset naie type
gse(=name:=type
designated graphic sets[4];
gl;
gr;
invoked g1;
invoked:=gr;
Algorithm:
void announce_level_l ()
{
if
{
(conformance level> 2) I I
(level 2 extensions[8bit ia])
- -
-
designated graphic sets[O) - ASCII G;
designated-graphic-sets[l) - ISO LATINl SUPPLEMENTAL G;
gl - designated graphic sets[O);invoked gl = GO;
gr = designated graphic sets[l);
invoked gr = Gl;
-
}
-
}
void announce_level_2 ()
{
if
{
(conformance level > 2) I I
(level 2 extensions[8bit ia))
- -
-
designated graphic sets[O) = ASCII G;
designated-graphic-sets[1] = ISO LATIN1 SUPPLEMENTAL G;
gl = designated graphic sets[O);invoked gl = GO;
gr = designated graphic sets[l]i
invoked gr = Gl;
-
}
-
void announce level_3 ()
{
if ( (conformance level> 2) I I
(level_2_extensions[8bit_ia])
~DmDDmDTM
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-70
Digital Internal Use Only
{
designated graphic sets[O] - ASCII G;
gl - designated graphic sets[O]; invoked gl - GO;
.
}
-
}
Known Deviations:
mamaomD™
None
EL-00070-03
VSRM - Code Extension Layer
3.8.2
14-Apr-1989
Page 3-71
Digital Internal Use Only
COMMUNICATIONS ENVIRONMENT
SELECT 7-BIT C1 TRANSMISSION
Levels:
S7C1T
2, 3
Purpose: Cause the device to generate C1 controls in 7-bits as
two character ESC Fe sequences.
Format:
ESC
SP
F
1/11
2/0
4/6
The S7C1T control causes the terminal to use the
7-bit encoding for all C1 control characters transmitted.
Therefore, all C1 characters will be represented as two character
ESC Fe sequences.
~escription:
Notes:
1.
The coding of this control is defined in ISO and ANSI
standards, but is not assigned a name in those standards.
Stat.e Affected:
Algorithm:
void select 7 bit c1 transmission ()
{
if (conformance level 1= LEVEL 1)
c1 transmission mode = SEVEN_BIT;
}
Known Deviations:
mDmDomD™
None
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-72
Digital Internal Use Only
saCIT
SELECT a-BIT Cl TRANSMISSION
Levels:
2, 3
Purpose: Cause the device to generate Cl controls in 8-bits as
single character control codes.
Format:
ESC
SP
G
1/11
2/0
4/7
Description:
The S8CIT control causes the terminal to use the
8-bit encoding for all Cl control characters transmitted.
Therefore, all Cl characters will be represented as single
character control codes.
Notes:
1.
The coding of this control is defined in ISO and ANSI
standards, but is not assigned a name in those standards.
2.
If the Hos~ Port environment is set to Seven Bit, this
control wilI be Ignored by the terminal.
-
State Affected:
Algorithm:
void select_8_bit_cl_transmission ()
{
if
(conformance level != LEVEL 1) &&
(host port environment -- EIGHT BIT)
c1 transmission mode - EIGHT_BIT;
}
Known Deviations:
None
EL-00070-03
VSRM - Code Extension Layer
3.8.3
14-Apr-1989
Page 3-73
Digital Internal Use Only
SHIFT FUNCTIONS
3.8~3.1
Locking Shifts
SI
LSO
SHIFT IN
LOCKING SHIFT ZERO
1, 2, 3
Levels:
Purpose:
Invoke the GO graphic character set into the GL position
of the code table.
LSO
Format:
(SI)
1/15
Description:
The LSO or SI control invokes the set of graphic
characters currently designated as a GO set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 that is
entered into the display to be rendered according to the current
contents of the GO character set.
"I
I
NOTE
1
1
1
1
1
1
1
GO cannot normally be a 96-character set since
there is no control function to designate a
96-character set as GO. A 96 character UPSS could
be designated as GO in which case subsequent data
in the range 2/0 to 7/15 would be affected.
Conforming software shall not designate a 96
character UPSS as GO.
I
I
State Affected:
Algorithm:
void shift in ()
{
in use table.gl = designated graphic sets[O];
in-use-table.invoked gl = GO;
-
}-
-
Known Deviations:
momDomD™
-
None
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-74
. Digital Internal Use Only
SHIFT OUT
LOCKING SHIFT ONE
SO
LS1
-----------------------~------------------------------------------
Levels:
1, 2, 3
purpose: Invoke the G1 graphic character set into the GL position
of the code table.
Format:
LS1
(SO)
1/14
Description:
The LS1 or SO control invokes the set of graphic
characters currently designated as a G1 set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 (or 2/0
through 7/15 for 96 character sets) that is entered into the
display to be rendered according to the current. contents of the G1
character set.
State Affected:
Algorithm:
void shift_out ()
{
in use table.gl - designated graphic sets[l];
in-use-table.invoked gl - G1;
}Known Deviations:
mDmDomD™
None
EL-00070-03
VSRM ~ Code Extension Layer
14-Apr-1989
Page 3-75
Digital Internal Use Only
LS2
LOCKING SHIFT TWO
Levels:
2, 3
Purpose:
Invoke the G2 graphic character set into the GL position
of the code table.
Format:
ESC
n
1/11
6/14
Description:
The LS2 control invokes the set of graphic
characters currently designated as a G2 set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 (or 2/0
through 7/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G2
. character set.
Notes:
1.
This control is included in the terminal interface for
interchange compatibility with ISO and ANSI standards.
It is not to be used by conforming software.
State Affected:
Algorithm:
void locking shift two ()
{
if
-(conformance level =- LEVEL 2)
{
in use table.gl = designated graphic sets[2];
in-use-table.invoked gl = G2;
}-
}
Known Deviations:
momDomD™
None
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-76
Digital Internal Use Only
LOCKING SHIFT THREE
Levels:
LS3
2, 3 ,
Purpose:
Invoke the G3 graphic character set into .the GL position
of the code table.
Format:
ESC
o
1/11
6/15
Description:
The LS3 control invokes the set of graphic
characters currently designated as a G3 set into the left-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 2/1 through 7/14 (or 2/0
through 7/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G3
character set.
Notes:
1.
This control is included in the terminal interface for
interchange compatibility with ISO and ANSI standards.
It is not to be used by conforming software. See DEC STD
070-1.
State Affected:
Algorithm:
void locking shift three ().
-
{
if (conformance level
-
{
==
LEVEL_2)
in use table.gl = designated graphic sets[3];
in-use-table.invoked gl = G3;
}
-
-
-
}
Known Deviations:
~DmDDmDTM
None
14-Apr-1989
Page 3-77
Digital Internal Use Only
EL-00070-03
VSRM - Code Extension Layer
LOCKING SHIFT ONE RIGHT
Levels:
LS1R
2
Purpose:
Invoke the G1 graphic character set into the GR position
of the code table.
Format:
ESC
1/11
7/14
Description:
The LS1R control invokes the set of graphic
characters currently designated as a G1 set into the right-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 10/1 through 15/14 (or 10/0
through 15/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G1
character set.
Notes:
1.
This control is included in the terminal interface for
interchange compatibility with ISO and ANSI standards.
It is not to be used by conforming software.
(See DEC
STD 070-1.)
2.
Conformance to Level 3 of ISO 4873 requires the use of
LS1R to invoke the right-hand part of the eight-bit code
table.
State Affected:
Algorithm:
void locking shift one right ()
f
-
--
if (conformance level
-
{
==
LEVEL 2)
-
in use table.gr = designated graphic sets[l]i
in-use-table.invoked gr = G1;
-
}-
-
-
}
Known Deviations:
~DmDDmDTM
None
14-Apr-1989
Page 3-78
Digital Internal Use Only
~L-00070-03
VSRM - Code Extension Layer
LS2R
LOCKING SHIFT TWO RIGHT
Levels:
2, 3
Purpose: Invoke the G2 graphic character set into the GR position
of the code table.
Format:
ESC
}
1/11
7/13
Description:
The LS2R control invokes the set of graphic
characters currently designated as a G2 set into the right-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 10/1 through 15/14 (or 10/0
through 15/15 for 96 character sets), that is entered into the
display to be rendered according to the current contents of the G2
character set.
State Affected:
Algorithm:
void locking shift two right ()
--
-
{
if (conformance level -- LEVEL 2)
{
-
-
in use table.gr • designated graphic sets[2];
in-use-table.invoked gr = G2;
}}
Known Deviations:
momDomD™
None
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989.
Page 3-79
Digital Internal Use Only
LOCKING SHIFT THREE RIGHT
Levels:
LS3R
2, 3
Purpose:
Invoke the G3 graphic character set into the GR position
of the code table.
Format:
ESC
1/11
7/12
Description:
The LS3R control invokes the set of graphic
characters currently designated as a G3 set into the right-hand
graphics portion of the Code Table. Receipt of this control
causes subsequent data in the range 10/1 through 15/14 (or 10/0
through 15/15 for 96 character sets) that is entered into the
display to be rendered according to the current contents of the G3
character set.
State Affected:
Algorithm:
void locking shift three right ()
-
-
{
if (conformance level
-
{
==
-
LEVEL 2)
-
in use table.gr = designated graphic sets[3];
in-use-table.invoked gr = G3;
-
}-
-
Known Deviations:
-
None
EL-00070-03
VSRM - Code Extension Layer
3.8.3~2
14-Apr-1989
Page 3-80
Digital Internal Use Only
Single Shifts
SINGLE SHIFT TWO
Levels:
SS2
1, 2, 3
Purpose: Temporarily invoke a single character from the
designated G2 set.
Format:
SS2
8/14
Description:
The SS2 control causes the next character in the
received data strea~, which must be in the range 2/0 through 7/15
or 10/0 through 15/15, to be rendered according to the current
contents of the G2 set. If the next character in the received
data stream is not a graphic character in this range, the single
shift function is ignored and the received character is processed
as if the single shift had not been received.
The only exception to this rule is that a single Shift Out (0/14)
or Shift In (0/15) control character may occur between the Single
Shift and the subsequent graphic character. The Shift Out or
Shift In character will be interpreted normally, but does not
cancel the Single Shift. The following bit combination shall be
interpreted as a character from the G2 set. This is done for
conformance to ISO 2022, and is intended to facilitate the design
of 8-bit to 7-bit transformation facilities.
State Affected:
single shift type single shift;
boolean_type-cancel_single_shift;
Algorithm:
(See "Single Shift Three" below.)
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
page 3-81
Digital Internal Use Only
SINGLE SHIFT THREE
SS3
1, 2, 3
Levels:
purpose: Temporarily invoke a single character from the
designated G3 set.
Format:
SS3
8/15
Description:
The SS3 control causes the next character in the
received data stream, which must be in the range 2/0 through 7/15
or 10/0 through 15/15, to be rendered according to the current
contents of the G3 set.
If the next character in the received
data stream is not a graphic character "in this range, the single
shift function is ignored and the received character is processed
as if the single shift had not been received.
The only exception to this rule is that a single Shift Out (0/14)
or Shift In (0/15) control character may occur between the Single
Shift and the subsequent graphic character. The Shift Out or
Shift .In character will be interpreted normally, but does not
cancel the Single Shift. The following bit combination shall be
interpreted as a character from the G3 set. This is done for
conformance to ISO 2022, and is intended to facilitate the design
of 8-bit to 7-bit transformation facilities.
State Affected:
sing-Ie shift type single shift;
boolean_type-cancel_single_shift;
Algorithm:
1
1
I
/* . . . main loop */
c = readcom();
1
parse_ansi(c, &com_state, &event, &start, &final);
1
if (single shift!s NONE)
I
1
"I
1
1
I
I
I
1
1
I
I
1
I
{-
.
if (cancel single shift) single shift
cancel single shift - IS TRUE; -
-
}
-
-
/* process recognized events . . . */
if (event == R CONTROL)
-
{
=
code
com_state->data[final];
if (code
==
OxOE)
{
shift_out( )i
~DmDDmDTM
/* SO (LS1) */
=
NONE;
EL-00070-03
VSRM - Code Extension Layer
14-Apr~19S9
Page 3-S2
Digital Internal Use Only
cancel single shift - IS_FALSE;
}
-
-
else if (code -- OxOF)
/*
51 (LSO)
*/
{
shift in();
canceI single shift - IS_FALSE;
}
-
-
else if (code -- OxSE)
{
single shift - SS2;
cancel-single shift - IS_FALSE;
}
-
-
else if (code -- OxSF)
{
single shift- SS3;
cancel-single shift - IS_FALSE;
}
-
-
/* . . . */
}
/* continue main loop . • • */
Known Deviations:
Previous versions of this standard incorrectly stated that an SO
or SI between a Single Shift and its operand would be ignored.
Since we do not normally translate between 7-bit and S-bit
environments within Digital; this has not been a problem. Future
implementations should conform to ISO 2022 as described above.
momDomD™.
-EL-00070-03
VSRM - Code Extension Layer
3.9
14-Apr-1989
Page' 3-83
Digital Internal Use Only
CHANGE HISTORY
3.9.1
REVISION 0.2 to 0.3
1.
The standard's title was changed from "Communications and
Coding Interchange" to "Code Extension La~er".
2.
The names of the Reference Standards were corrected.
3.
The conformance section was removed, and will later be
integrated into the section "Concepts and Conformance
Criteria".
4.
The terminology section was moved from the back of the
document to the front.
5.
A sentence was added to the section on graphic character
codes to clarify the handling of bit combinations in the
range 2/1 through 7/14 and 10/1 through 15/14 when
received within a control function.
6.
Qualifications were added to the section on rate limiting
in terminals.
7.
XON was removed from the definition of the Universal
Terminator.
8.
Sections were added to the notes on Escape Sequences and
Control Sequences to clarify the processing of 7/15 and
15/15 and C1 control characters within control functions.
9.
The section on processing of control sequence parameter
values was substantially rewritten.
10.
The section on Control Strings was moved ahead of the
parser design.
11.
A note was added on the non-conformance of the VT125 in
processing CAN within control strings.
12.
Global changes were made to the parser design to
incorporate the processing of DCS introducer sequences.
13.
A figure was added showing the logical relationship of
the C sets, G sets, In Use Table, and character sets.
14.
A note was added referencing DEC STD 169-0 and clarifying
the distinction between conforming Presentation
interchange and conforming Application interchange.
15.
The 8-bit locking shifts table was corrected for LS3R.
16.
All state descriptions were rewritten, and the names
changed for consistency with other parts of the SRM.
mDmDomo™
EL-00070-03
VSRM - Code Extension Layer
l4-Apr-1989
Page 3-84
Digital Internal Use Only
s~ction
17.
The environments
18.
The default character set designations were changed to
distinguish between Level 1 operation and Level "2
operation.
19.
The names of Select 7-bit C1 and Select 8-bit C1 were
changed to include "Transmission". These controls are
now called S7CIT and S8CIT.
20.
GR Transmission Mode and Send/Receive Mode were removed
from the architecture.
21.
The coding was changed for LSO, LS1, LS1R, LS2R, LS3R,
SS2 and SS3. Notes were added on conforming software use
of these controls.
22.
The character set designators were removed from this
section and will later be incorporated into the section
"Character Cell Display".
3.9.2
was substantially rewritten.
REVISION 0.3 to AxlO
1.
Removed reference to use of Delete as a pad character,
and made wording stronger that conforming software must
use NUL only.
2.
Added note to description of the processing of the 10/0
character to indicate that it is treated as Space (2/0)
within controL functions.
3.
Made minor corrections and changed a few variable names
in the parser algorithms to be consistent with other
sections of the SRM.
4.
Added a note to the section on environments indicating
that the "logical" environment might in fact be different
from the "physical" environment of the hardware, and if
this is the case the architecture does not define the
result.
5.
Changed descriptions of Single Shift Two and
Single Shift Three as well as the algorithms to indicate
that they wiTl be ignored if the next character in the
received data stream is not a graphic character.
(With
the exception that a single Shift Out or Shift In
character may occur.)
6.
Removed the notes which restricted conforming software
from using Single Shift Two and Single Shift Three.
mDmDomD™
EL-00070-03
,VSRM - Code Extension Layer
14-Apr-1989
Page 3-85
Digital Internal Use Only
7.
Added a note that rate limiting should be the factory
default in devices which have a capability of defeating
this feature.
8.
Changed the description of control characters occurring
within control strings to permit, but deprecate the use
of, any function other than String Terminator to
terminate a string.
9.
Added a note that GR (8-bit) graphic characters may occur
within control strings.
3.9.3
REVISION AX10 to Ax11
1.
Removed Rev AX10 change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.
2.
Changed GET NEXT CODE FROM INPUT BUFFER to strip
parity bit in Levell. ----
3.
Added statement that the inclusion of CO Controls 0/8 to
0/13 in control string data is intended for convenience
in formating and storing control strings.
It is
recommended that these characters not affect the
interpretation of the control string.
EL-00070-03
VSRM - Code Extension Layer
3.9.4
14-Apr-1989
Page 3-86
Digital Internal Use Only
REVISION AX11 to AX12
1.
Removed Rev AXll change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.
2.
Added description of 8-bit Interface Architecture
Extension including Support for 96-character graphic
character sets, ISO Latin-l Supplemental, and the User
Preference Supplemental Set (UPSS). The 8-bit Interface
Architecture Extension is required for Level 3
conformance, and strongly recommended for Level 2.
Modified rest of chapter to assume the 8-bit Interface
Architecture Extension is present. Graphic characters
can now be in the range 2/0-7/15 and 10/0-15/15 when
96-character graphic sets are used. Expanded description
of default designations and invocations for 8-bit
Interface Architecture.
3.
updated referenced standards section. Added dpANS
X3.134.1-1985, X3.134.2-1985, and ISO 8859-1:1987.
4.
Removed one page section on communication controls
(XON/XOFF, padding, and rate limiting) because they are
not really part of Code Extension. These will included
in chapter 12 on Terminal Synchronization.
5.
Changed recommendation for mlnlmum size of parameters
that should be supported. Was 255 (8-bits), changed to
16384 (14-bits).
6.
Added recommendation for handling parameters beyond the
device maximum. Parameters beyond the maximum number
supported should be ignored.
7.
Extended description of multiple selective parameters to
conform with current usage. Not all sequences containing
more than one selective parameter have the same effect as
a corresponding number of separate control sequences,
each with a single parameter.
8.
Clarified range of final characters for DeS sequences 7/0
t~ 7/14 (same as for private control sequences).
9.
Added description of Digital extended syntax for other
Control Strings (APC, OSC, PM). Syntax is patterned
after Private Escape Sequences.
10.
Added description of Character Strings (SOS) and
anticipatory guidelines compatible with ISO 6429.
11.
Clarified rules for 8-bit graphic characters within
control strings including exception for Des strings.
8-bit graphic characters are treated as their 7-bit
mamaomD™
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-87
Digital Internal Use Only
equivalents (8th bit ignored) in APC, OSC, PM strings,
and DCS introducer sequences.
Interpretation of 8-bit
characters in data portion of DCS strings is dependent on
the internal control string format.
12.
Added description of NRCS Extension allowing ASCII to be
replaced with NRC set (including default designations and
invocations). Removed previous description of British
NRCS as a special case.
Included reference to section 6
where DECNRCM is documented.
13.
Removed description of Printer Port Environment
(7-bits/8-bits) within Host Port Environment. Added
reference to "Printer Port Extension" chapter.
14.
Added description of "Announce Subset of Code Extension
Facilities" per ISO 4873 including algorithm and escape
sequences.
15.
Added note about the possibility of a 96-character UPSS
being designated as GO. Normally there is no way to
directly designate a 96-character set as GO.
Conforming
software shall not designate a 96-character UPSS as GO.
16.
Changed algorithms to use character re-entrant parser
coded in VAX-11 C. This table driven ANSI parser is
easier to follow, and is being used in actual products.
17.
Changed standard to show that SI or SO occurring between
a Single Shift and its operand does not cancel the Single
Shift (SS2 or SS3) but may still affect subsequent data.
EL-00070-03
VSRM - Code Extension Layer
3.10
14-Apr-1989
Page 3-88
Digital Internal Use Only
REFERENCED DOCUMENTS
DIGITAL STANDARDS
EL-00070-01
DEC STD 070-1 Video Systems Reference
Manual - Concepts and Conformance Criteria
EL-00070-05
DEC STD 070-5 Video Systems Reference
Manual- Character Cell Display
EL-00070-06
DEC STD 070-6 Video Systems Reference
Manual - Keyboard Processing
EL-00070-07
DEC STD 070-7 Video Systems Reference
Manual - Printer Port Extension
EL-00138-00
DEC STD 138-0 Registry of Control
Functions for Character Imaging Devices
EL-00169-00
DEC STD 169-0 DEC Standard Coded
Graphic Character Sets for Hardware
and Software
Copies of Digital Standards Can be obtained from Standards and
Methods Control, $ VTX SMC, JOKUR::SMC, DTN 287-3724, or
CTS1-2/D4.
please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.
ANSI AND ISO STANDARDS
ANSI X3.4 - 1986
American National Standard Code for
Information Interchange (ASCII character set)
ANSI x3.41 - 1974
American National Standard Code Extension
Techniques for use with the 7-sit Coded
Character Set of the American National
Standard Code for Information Interchange
ANSI X3.64 - 1979
Additional Controls for use with American
National Standard Code for Information
Interchange
ANSI X4.23 - 1982
Keyboard Arrangement for Alphanumeric
Machines
mD~DDmDTM
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page 3-89
Digital Internal Use Only
dpANS X3.134.1-1985 8-bit ASCII Structure and Rules
dpANS X3.134.2-1985
7~bit and 8-bit ASCII Supplemental
Multinational Graphic Character Set
ISO 646
Information Processing /
7-Bit Coded Character Set
for Information Interchange
ISO 2022:1986
Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques
ISO 6429:1988
Information Processing /
Control Functions for Coded Character Sets
ISO 8859-1:1987
Information Processing /
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1;
Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries.
~DmDDmDTM
,
EL-00070-03
VSRM - Code Extension Layer
l4-Apr-1989
Page 3-90
Digital Internal Use Only
This page deliberately left blank.
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page Index-1
Digital Internal Use Only
Section Index
10/0, 3-17
15/15, 3-17
within control function, 3-22,
3-23
2/0, 3-17
7/15, 3-17
within control function, 3-22,
3-23
Announce Subset of Code Extension
Facilities, 3-68
APC
introducer, 3-29
Application Program Command, 3-28
8-bit Character Set
within control function, 3-22,
3-24
7-bit Characters, 3-7, 3-64
8-bit Characters, 3-7
Bit Combination, 3-12, 3-61
definition, 3-10
parameter, 3-24
within control function, 3-16
C language, 3-31
CO Control Characters, 3-60, 3-65
7-bit encoding, 3-12
8-bit encoding, 3-14
CO Control Code
within control function, 3-22,
3-23
C1 Control Characters, 3-60, 3-65
7-bit encoding, 3-23, 3-71
8-bit encoding, 3-14, 3-72
wi thin control functions, 3-.19
within control strings, 3-30
C1 Control Code
within control function, 3-22,
3--24
C1 Transmission Mode, 3-67, 3-71,
3-72
Cancel, 3-19, 3-30
Character
defined, 3-10
Character Code, 3-12
control, 3-16
definition, 3-10
graphic, 3-16
Character Set, 3-59
7-bit, 3-12
8-bit, 3-14
definition, 3-10
designation, 3-62
repertory, 3-60
Code Extension, 3-16
control code, 3-18
control sequence, 3-23
definition, 3-10
escape sequence, 3-22
graphic code, 3-59
Code Table, 3-62
definition, 3-10
row and column, 3-11
structure, 3-13, 3-15
Command String, 3-29
Conformance
locking shifts, 3-61
single shifts, 3-62
software, 3-62
Control Character, 3-16
7-bit environment, 3-16
8-bit environment, 3-16
CO, 3-14
C1, 3-14, 3-19
C1 expansion, 3-23
cancel, 3-19
code extension techniques, 3-18 definition, 3-10
escape, 3-19
substitute, 3-19
unimplemented, 3-20
within control function, 3-22,
3-23
Control Function, 3-16
categories, 3-18
definition, 3-10
precedence, 3-18
Control Sequence, 3-18, 3-23
definition, 3-10
format, 3-23
introducer, 3-23
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page Index-2
Digital Internal Use Only
numeric parameter, 3-11, 3-25
parameter, 3-24
parameter string, 3-11, 3-24"
parsing, 3-31
private parameter, 3-26
selective parameter, 3-11, 3-25
termination, 3-18, 3-19
unimplemented, 3-20
Control Sets, 3-65
Control String, 3-18
definition, 3-10
string terminator, 3-28
termination, 3-19, 3-30
types, 3-28
unimplemented, 3-20
DEC STD 070-1, 3-62, 3-76, 3-77,
3-88
DEC STD 070-5, 3-65, 3-88
DEC STD 070-6, 3-7, 3-17, 3-63,
3-64, 3-88
DEC STD 070-7, 3-66, 3-88
DEC STD 138-0, 3-25, 3-88
DEC STD 169-0, 3-62, 3-68, 3-83,
3-88
DECNRCM, 3-7, 3-64
Default Designation and
Invocation, 3-63, 3-68, 3-69
Defaults
character set designation, 3-63,
3-68
character set invocation, 3-63,
3-68
Delete, 3-12, 3-14, 3-17
Designate, 3-60, 3-62
defaults, 3-63, 3-68
definition, 3-10
Designated Graphic Sets, 3-60
definition, 3-65
Device Control String, 3-28
format, 3-28
introducer, 3-28
numeric parameter, 3-11
parameter string, 3-11
parsing, 3-31
selective parameter, 3-11
dpANS X3.l34.1-1985, 3-89
Environment
7-bit and 8-bit, 3-12, 3-21,
3-59, 3-66
definition, 3-10
host port, 3-66
printer port, 3-66
transformation, 3-21
Escape, 3-19, 3-22, 3-30
Escape Sequence, 3-18, 3-22
definition," 3-10
expansion escape sequence, 3-11,
3-23
format, 3-22
parsing, 3-31
termination, 3-18, 3-19
unimplemented, 3-20
Expansion E~cape Sequence," 3-23
definition, 3-11
Final Character
APC, 3-29
control sequence, 3-23
definition, 3-11
device control string, 3-28
escape sequence, 3-22
OSC, 3-29
PM, 3-29
G-Sets, 3-59
GO, 3-60, 3-65
G1, 3-60, 3-65
G2, 3-60, 3-65
G3, 3-60, 3-65
GL, 3-14, 3-60, 3-65
GR, 3-14, 3-60, 3-65
GR Graphic Character
within control function, 3-24
Graphic Character, 3-16
code extension techniques, 3-59
definition, 3-11
GL, 3-14
GR, 3-14
within control function, 3-22
Host Port Environment Mode, 3-66,
3-67
In Use Table, 3-15, 3-60, 3-65
Interface
external, 3-9
internal, 3-9
EL-00070-03
VSRM - Code Extension Layer
14-Apr-1989
Page Index-3
Digital Internal Use Only
Intermediate Character
control sequence, 3-23
definition, 3-11
device control string, 3-28
escape sequence, 3-22
Invoke, 3-60, 3-62
defaults, 3-63, 3-68
definition, 3-11
ISO 4873, 3-68
ISO 8859-1, 3-89
examples, 3-27
maximum length, 3-24
parsing, 3-31
PM
.
introducer, 3-29
Printer Port
environment, 3-66, 3-67
privacy Message, 3-28
Private parameter, 3-26
Referenced Documents, 3-88
Locking
Level
Level
Locking
Locking
Lo~king
Locking
Locking
Locking
Locking
Shift, 3-59
1, 3-61
2, 3-61
Shift One, 3-74
Shift One Right, 3-77
Shift Three, 3-76
Shift Three Right, 3-79
Shift Two, 3-75
Shift Two Right, 3-78
Shift Zero, 3-73
Modes
Cl transmission, 3-67, 3-71,
3-72
host port environment, 3-67
printer port environment, 3-67
Multinational Mode, 3-7
National Mode, 3-7, 3-64
National Replacement Character
Set (NRCS), 3-7, 3-64
Numeric Parameter
definition, 3-11
multiple, 3-25
Operating System Command (OSC),
3-28
introducer, 3-29
Parameter
device control string, 3-28
maximum value, 3-24
numeric, 3-11, 3-25
private, 3-26
selective, 3-11, 3-25
unimplemented, 3-20
Parameter String, 3-23
definition, 3-11
device control string, 3-28
S7C1T, 3-71
S8C1T, 3-72
Select 7-Bit C1 Transmission
control function, 3-71
Select a-Bit C1 Transmission
control function, 3-72
Selective parameter
definition, 3-11
multiple, 3-25
Shift Functions, 3-59
Shift In, 3-73
within control function, 3-21
Shift Out, 3-74
within control function, 3-21
Sing~e Shift, 3-59, 3-62, 3-66
Single Shift Three, 3-81
Single Shift Two, 3-80
Software Conformance
designating character sets,
3-62
invoking character sets, 3-62
pad characters, 3-17
terminating control strings,
3-30
Space, 3-12, 3-14, 3-17
Special Characters
10/0, 3-17
15/15, 3-17
7/15 (delete), 3-17
2/0 (space), 3-17
String Terminator, 3-19, 3-28
Substitute, 3-19, 3-30
Termination
C1 control codes, 3-19
cancel, 3-19
control sequence, 3-18
control string, 3-28, 3-30
EL-00070-03
VSRM - Code Extension Layer
esc~pe, 3-19
escape sequence, 3-18
substitute, 3-19
universal, 3-19
Transformation, 3-21
14-Apr-1989
page Index-4
Digital Internal Use Only
Unimplemented Functions
control character, 3-20
control sequence, 3-20
control string, 3-20, 3-30
escape sequence, 3-20
Universal Terminator, 3-19
EL-00070-03
14-Apr-1989
VSRM - Code Extension Layer
+-------------------------------------------------------------------+
I
READER COMMENTS
I
I
I
I Your comments and suggestions will help Standards and Methods I
I Control improve their services and documents.
I
+-------------------------------------------------------------------+
Did you request this document?
satisfactory period of time? _____
If so, did it arrive within
Please comment.
What are your impressions of this document?
Consider
organization, completeness, readability, and illustrations.
a
format,
- -- -- -- -- -- -- -- -- -- FOLD ON THIS LINE -- -- -- -- -- -- -Did you find technical or clerical errors in this document? If so,
please specify the page number(s) and the error(s).
Are the instructions for the update package clear?
Do you have other suggestions for improving this document?
The following information is optional:
Name
Mailstop
Department
Node
Send your comments to JOKUR::PROJECTS, or fold, staple, and send this
page through interoffice mail to:
+-------------------------------+
I
READERS' COMMENTS
I
I STANDARDS AND METHODS CONTROL I
I
CTSl-2/D4
I
+-------------------------------+
EL-00070-04
Digital Internal Use Only
04-0ct-1990
DEC STD 070-4 Video Systems Reference
Manual - Terminal Management
DOCUMENT IDENTIFIER: A-DS-EL00070-04-0000 Rev A, 04-0ct-1990
ABSTRACT: This section describes device and service-class independent protocols for
performing identification and status functions, and for selecting syntax for interchange
compatibility.
APPLICABILITY: Mandatory for engineers designing hardware for terminal products and
software engineers designing programs using terminal interfaces. Additional requirements are
defined in DEC STD 070-1 Video Systems Reference Manual - Concepts and Conformance
Criteria.
STATUS: APPROVED 04-0ct-1990; use VTX SMC for current status.
The material contained within this document is assumed to define mandatory
standards unless it is clearly marked as: a. not mandatory; or b. guidelines.
Material that is marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there are good
reasons for non-compliance. "Guidelines" define approaches and techniques
that are considered to be good practice, but should not be considered as
requirements.
This document is confidential and proprietary, and is the property of Digital
Equipment Corporation. It is an unpublished work protected under the Federal
copyright laws.
©Digital Equipment Corporation.
1990. All rights reserved.
Digital Internal Use Only
Digital Internal Use Only
EL-00070-04
04-0ct-1990
DEC STD 070-4 Video Systems Reference Manual - Terminal Management
DOCUMENT IDENTIFIER: A-DS-EL00070-04-0000 Rev A, 04-0ct-1990
Rev A
REVISION HISTORY:
Document Management Category:
Responsible Department:
Responsible Person:
SMC Writer:
04-001-1990
Terminal Interface Architecture (STI)
VIPS Terminals Architecture
Peter Sichel
Don Mehaffey
APPROVAL: This document has been reviewed and recommended for approval by the General
Review group for its category.
Peter Sichel - VIPS Terminals Architecture
Eric Williams - Standards Process Manager
Direct requests for further information to:
Peter Sichel
Use $ VTX ELF for the latest location information.
Use VTX SMC to order copies of this document from Standards and Methods Control. Send
distribution questions to JOKUR::SMC or call DTN: 287-3724.
DlgttallnternalUse Only
04·0ct·1990
EL-00070-04
CONTENTS
1 INTRODUC'l'ION ................................
1.1 SCOPE .............
1.2 RELATIONSHIP TO TERMINAL INTERFACE ARCHITECTURE (TIA)
0
0
2 TERMINOLOGY
0
•
•
•
•
•
•
•
•
•
•
0
•
••
•
•
o
•
•••
•
•
•
0
•
•••
•
•
•
00'
•
•
•
•••
•
•
•
0....
•
•
•
•
•
•
•
•••••
••
•
•
••
•
•
••
•
•
0
•
•
•
•
•••••••
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
••
•
0.......
•
•
•
•
•
•
•
•
1
1
1
2
•
3 STATE DESCRIPrIONS ................
3.1 DEVICE IDENTIFICATION ..........................................
3.2 TERMINAL STATE DECLARATIONS ...........
3.3 STATUS AND TEST ................ '
3.3.1 Virtual Terminal Configuration.
3.3.2 Data Integrity .......
3
3
5
12
12
12
4 DEVICE INITIALIZATION ..................................
12
0
0
0
0
5 CONTROL FUNCTIONS.
0
•
••
•
0
•
•
•
•
•
•••••
•••••••••••
0
•
•
0
0
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•••
0
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
0
••••
0
••••••••••
0
•
0
0
•
•••••••••••••••••••
0
•
0
0
•
•
•
•
•
•
0
•
•
•
0
••••••••••••••••••••••••
0
••
0
•••
0
0
•
•
•
•
•
0
•••••••••
•••••••••••••••••••••••••••••••••••••••••••••
0
6 CHANGE HISTORY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 REVISION 0.0 TO 0.1 ...............................................
6.2 REVISION 0.1 TO .AX10 o.
6.3 Rev AXI0 to .AXIl ..................................................
6.4 Rev AXIl to AX12 ..
0
0
Appendix A
••••
••••••
0
•
•
0
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
REFERENCED DOCUMENTS. . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . .
A.I EL-Class Digital Documents .................................
Appendix B
RELATED DOCUMENTS ................
0
••
0
••
0
•
•
•
•
•
0
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
0
0
0
Bol EL-Class Digital Documents ........................................
B.2 Other Documents ................
Bo3 Ordering Information
0
••••••
0
0
••••
0
•••••
0
•
0
0
0
.' ••
0
•••
0
0
•
0
•••••••
0
••••••••••
0
0
0
0
0
0
••••
•••
0
•
•••••
•
•
•
•
•
•
•
•
•
•
0
•
•
•
•
•
•
17
38
38
38
39
39
43
43
45
45
45
45
INDEX
FIGURES
I
2
mOIODla'"
Structuring of the Terminal Interface Architecture
External and Internal Terminal Interfaces
o
••••
0
0
•
0
••
0
0
0
0
0
••
Digital Internal Use Only
0
0
0
••
••
0
0
•
•
••••••
•
•
•
•
•
•
•
0
0
0
•
0
0
•
1
2
III
EL"()0070"()4
04-Oct-1990
TABLES
1
Registered Extensions to the Character Cell Display Service Class
Digital Internal Use Only
19
04·0ct·1990
EL·00070·04
1
INTRODUCTION
This standard defines the interface to perform terminal management functions in all
terminal devices. Terminal management functions include device control operations
that are independent of any display service class and that are not associated with the
. presentation of data.
1.1
SCOPE
This standard applies to all Digital products that implement terminal management
interfaces and are to be certified as conforming to the Terminal Interface Architecture
(TIA). It also applies to software that is intended to use these interfaces in a conforming
manner.
1.2
RELATIONSHIP TO TERMINAL INTERFACE ARCHITECTURE (TIA)
The terminal management functions are a unique class of device controls that operate
across layers of the TIA.
Figure 1: Structuring of the Terminal Interface Architecture
USER
Input Processing
T M
e a
r n
m a
9
Presentation Service Class
n e
a m
I e
n
t
Code Extension Layer
APPLICATION PROCESS
To aid in understanding, functions described in this document are identified as intended
for either application, terminal management, or communications use when an external
communications interface is present (guideline). These different uses may not always be
separated. For example, applications may require their own terminal management. If
not otherwise indicated, functions described in this document are intended for terminal
management use.
Digital Internal Use Only
1
04-Oct-1990
EL-00070·04
The interfaces defined within this document apply to both internal and external product
interfaces. External interfaces are interfaces between a terminal, personal computer, or
workstation and a remote system. Internal interfaces are interfaces between a terminal
sub-system and software processes running within a terminal, personal computer, or
workstation.
Figure 2: External and Internal Terminal Interfaces
Terminal
System
,
,---------------------\
Host
System
\
Physical
Terminal
Virtual
Terminal
,
,
,
,
,
,
,
\
Application
Process
\
\
\
EXTERNAL INTERFACE
\
Physical
Terminal
Virtual
Terminal
\
Application
Process
\
,
\
\
iNTERNAL INTERFACE
2 TERMINOLOGY
Conformance Level - An architectural agreement that defines a number of functions
within a class of operations that must be adhered to in all products claiming to implement
that level. Conformance levels are defined to provide interface compatibility with other
devices at the same level. Selecting a particular conformance level automatically places the
terminal into a known state (the Soft Terminal Reset state on video terminals), without
affecting the data currently contained in the display.
Device Self-Test - A control provided as a means of invoking device specific diagnostic
tests, .and subsequently determining the device status by means of the Device Status
Report (DSR) control.
.
Device Status Report - A control used to inquire as to the current state of the terminal
device. Note that some Device Status Reports (DSRs) are properly part of terminal
management, while others pertain to presentation state or input processing.
Factory Default State - Digital specified default values for all state information. Factory
Defaults are also the initial configuration of all setable state when the unit is shipped from
the factory (manufacturing site) .
. Power-Up State - Factory defaults plus any non-volatile settings, such as Non-Volatile
Memory (NVM), customization switches. The initial configuration of all eetable state
immediately following power-up.
Digital Internal Use Only
EL-00070-04
04-Oct-1990
Primary Device Attributes Control - The control used to request or report the
implemented architectural conformance level and extensions.
Secondary Device Attributes Control - The control used to request or report the
identification code of the specific product in which the interface is implemented.
Tertiary Device Attributes Control - The control used to request the identification code
of the specific unit in which the interface is implemented.
Terminal Management Functions - A special class of device controls that operate
across all layers of the Terminal Interface Architecture (TIA) and are not related to the
presentation of data.
3
STATE DESCRIPTIONS
The algorithms in this standard provide a description of terminal state and how it is
affected by various functions. They have been compiled for accuracy, but have not been
formally certified. They should be viewed the same as other text in the standard.
3.1
DEVICE IDENTIFICATION
A conforming device shall provide an identification mechanism that returns the following
information upon request.
a.
The general characteristics (display service class) of the device, indicating the
architectural level to which the device conforms
b.
c.
The architectural extensions that the device implements
A product specific code registered by the architecture
d.
A revision level code, indicating the release level of the communicating firmware or
software implementing the terminal management functions
e.
A list, defined by each product implementation, of product specific options installed in
the device at the time the identification request is received
f.
For Level 4 and higher devices, a unique serial number to identify the specific unit
Digital Internal Use Only
3
04-Oct-1990
EL·00070-Q4
The following example illustrates the constants used for VT420 terminal identification.
/************** Module terminal identification.h *************/
/*
*
*
-
Constants used for terminal identification
VT420 example
*/
/*
*
*
Extensions to the terminal interface architecture
1-Feb-1990
Level 1 through Level 4
*/
Ide fine
'define
'define
Ide fine
'define
'define
'define
'define
Ide fine
Ide fine
'define
'define
'define
Ide fine
Idefine
Ide fine
Ide fine
'define
'define
'define
Ide fine
'define
'define
'define
'define
Idefine
Idefine
Idefine
Ide fine
Ide fine
Idefine
Idefine
Ide fine
Idefine
'define
Ide fine
'define
ONE THIRTY TWO COLUMN
PRINTER PORT REGIS GRAPHICS
SIXEL GRAPHICS
KATAKANA EXT
SELECTIvE ERASE
ORCS EXT
UDK EXT
NRCS EXT
KANJI EXT
STATUS DISPLAY EXT
SERBO CROATIONBLOCK MODE
EIGHT-BIT IA
TCS
LOCATOR_PORT
TSI
WINDOWING
MULTIPLE SESSIONS
APL
HORIZONTAL SCROLL
COLOR TEXTGREEK
TURKISH
ARABIC BILINGUAL M1
ARAB IC-BILINGUAL-M2
ARABIC BILINGUAL M3
RECTANGULAR EDITING
TEXT LOCATOR
HANZI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/* Technical Char Set */
16
/* State Interrogation */
17
18
/* via TD/SMP */
19
20
21
22
23
24
25
26
27
28
29
30
/* 31 not assigned */
TEXT MACROS
32
33
HANGUL HANJA
ICELANDIC
34
ARABIC_BILINGUAL_TC
35
36
ARABIC BILINGUAL NOTC
THAI 37
38
CHARACTER OUTLINING
'define NUMBER_OF_EXTENSIONS
39
/* device identification */
Idefine PRODUCT ID
41
Idefine REVISION_LEVEL 10
/* VT420 */
/* Version 1.0 times 10 */
/* hardware options */
Idefine NUMBER_OF_OPTIONS 0
/* VT420 has no options */
OlgHal Internal Use Only
04-0ct-1990
EL-00070-04
3.2 TERMINAL STATE DECLARATIONS
The code example below illustrates type declarations for the terminal state. Type
declarations in C do not allocate any storage. All these types can be defined regardless of
the conformance level or extensions actually implemented.
/************** Module terminal_state_types.h *************/
/*
* type declarations for terminal state
PAS 1-Feb-1990
* VT420 example
*/
/*
* terminal management
*/
itinclude "terminal identification.h"
typedef short int conformance level t;
itdefine LEVEL 1 1
-itdefine LEVEL-2 2
itdefine LEVEL-3 3
itdefine LEVEL:4 4
/* DA definitions */
typedef enum
{
/* device status t */
READY,
MALFUNCTION
} device_status_t;
typedef enum
LIMITED, UNLIMITED } transmit_rate_limit_mode_t;
typedef enum
{
/* vt_configuration_t */
SINGLE SESSION,
SESSIONS_ON_COMM,
Sl HOST S2 PRINTER,
S2-HOST-S1-PRINTER
/*-VT330 with 2nd Host Port
SESSIONS_ON_COMM2,
Sl COMM1 S2 COMM2,
S2-COMM1-S1-COMM2 */
} Vt_confi~ration_t;
typedef enum
{
/* control_representation_mode_t */
INTERPRET_CONTROLS,
DISPLAY CONTROLS
} contrcl_representation_mode_t;
/*
* Code Extension Layer
*/
/* type declarations */
itinclude "gparse.h"
/* ANSI parser definitions */
typedef enum { ASCII_C }
cO_control_set_t;
typedef enum { SUPPLEMENTAL_C} c1_control_set_t;
typedef enum
{
ASCII_G,
LINE_DRAWING_G,
DEC_SUPPLEMENTAL_G,
ISO LATIN1 SUPPLEMENTAL_G,
DRCS_G,
NRCS_G,
UPSS_G,
TCS G
Digital Internal Use Only
5
EL·00070-o4
04-0ct-1990
} graphic_character_set_t;
typedef enum { GO, Gl, G2, G3 } gset_name_t;
typedef struct
{
/* in use table t */
cO_control_set t
cO;
graphic_character_set_t
gl;
gset_name_t
invoked_gl;
cO control set t
cl;
graphic_character_set_t
gr;
gset name t
invoked_gr;
} in:use_table_t;
typedef enum { NO SINGLE SHIFT, SS2, SS3
single_shift_t;
typedef enum
{
/* in control string t */
NOT_IN_CONTROL:STRING,REGIS,
SIXEL,
ORCS LOAD,
UDK_LOAD,
MACRO LOAD,
TERMINAL STATE_LOAD,
PRESENTATION_STATE_LOAD,
SET TERMINAL UNIT ID
} i~ control-stri~g t;
typedef enum { EIGHT_BIT, SEVEN_BIT } environment_t;
typedef enum { EIGHT BIT MULTINATIONAL, SEVEN BIT NATIONAL
character_set_mo'de_t;
ltinclude "char_cell_types.h"
/* character cell display */
/*
*
Status Display Extension
*/
t ypedef enum
typedef enum
MAIN DISPLAY, STATUS DISPLAY } active display t;
NO_STATUS_DISPLAY, INDICATOR, HOST } status_dlsplay_t;
/*
* keyboard processing
*/
typedef enum
UNLOCKED, LOCKED } keyboard_action_mode_t;
typedef enum
REPEAT_ON, REPEAT_OFF } auto_repeat_mode_t;
typedef enum
CURSOR, CK APPLICATION } cursor key mode t;
typedef enum
NUMERIC, KP APPLICATION} keypad mode t;typedef enum
TYFEWRITER,-DATA_PROCESSING}
keyboard usage mode t;
typedef enum-{ CAPS LOCK, SHIFT LOCK} caps shift lock mode t;
typedef enum { HOLD-OFF, HOLD ON } hold screen mode t;typedef enum { LOCK-OFF, LOCK-ON} lock-mode t ;
typedef enum { KEYCLICK OFF, KEYCLICK ON } keyclick mode t;
typedef enum { ECHO ON,-ECHO OFF} send receive mode t; typedef enum { DELETE, BACKSPACE } backarrow key mode t;
typedef enum { LOCAL, REPORT, IGNORE} local-key-mode-t;
typedef enum { LOCAL F5, SHIFTED ONLY, REPORT F5~ IGNORE F5
FS_key_mode_t; typedef enum { CHARACTER, POSITION } keyboard encoding mode t;
typedef short int keyboard dialect t;
-ltdefine KEYBOARD UNDEFINED-O
tdefine NORTH AMERICAN
1
ltdefine BRITISH
2
ltdefine FLEMISH
3
ltdefine CANADIAN FRENCH
4
ltdefine DANISH
5
ltdefine FINNISH
6
ltdefine GERMAN
7
ltdefine DUTCH
8
Digital Internal Use Only
04-0ct-1990
EL·OOO70·04
#define
#define
#define
#define
#define
#define
#define
#define
#define
#define
ITALIAN
SWISS FRENCH
SWISS GERMAN
SWEDISH
NORWEGIAN
BELGIAN FRENCH
SPANISHPORTUGUESE
CANADIAN ENGLISH
MAX NUM DIALECTS
9
10
11
12
13
14
15
16
17
18
/*
*
printer port
*/
typedef enum { PRINTER CONTROLLER OFF, PRINTER_CONTROLLER_ON }
printer_controller=mode_t;
typedef enum { AUTO_PRINT_OFF, AUTO_PRINT_ON } auto-print_mode_t;
typedef enum { PRINT FF OFF, PRINT FF ON } print form feed mode t;
typedef enum { PRINT-SCROLLING REGION; PRINT DISPLAY
print_extent~ode_t;
typedef enum { NO PRINTER TO HOST, PRINTER TO HOST
printer to host mode t; typedef enum {-SHARED, SESSIONl, SESSION2 }
printer_assignment_t;
typedef enum { NATIONAL_ONLY, NATIONAL_PLUS_LINE DRAWING,
MULTINATIONAL_ONLY, ALL CHARACTERS } printer_style_t;
T
-
-
/*
*
Graphics
*/
typedef enum { GRAPHICS CURSOR ON, GRAPHICS CURSOR OFF
graphics_cursor_enable_mode_t;
/* ReGIS */
/**************
module char_cell_types.h
*************/
/*
* type declarations for character cell display state
*
PAS 28-Jul-1989
*/
typedef enum
JUMP, SLOW} scrolling mode t i
typedef enum
NORMAL_SCREEN, REVERSE=SCREEN } screen mode t;
typedef enum
WRAP_OFF, WRAP_ON } auto_wrap_mode_t;
typedef enum
TEXT_CURS OR_OFF , TEXT_CURSOR_ON }
text cursor enable mode t;
typedef enum { INSERT,-REPLACE } insert replace mode t;
typedef enum { NEW LINE OFF, NEW LINE ON } new line ;ode_t;
typedef short int line_t;
typedef short int column_t;
typedef short int page_t;
typedef struct
{
/* character-position_t */
line t line;
column t column;
page t-page; /* L4 or Windowing */
} ch;racter-position_t;
typedef enum { TRUE, FALSE } boolean t;
typedef struct
/* character rendition t */
{
boolean t bold;
boolean t blink;
boolean-t underscore;
boolean-t reverse;
} character_rendition_t;
typedef struct
Digital Internal Use Only
1
04-00t-1990
EL-00070-04
/* character_attribute_t */
boolean t selective erase;
} character_attribute_t;
typedef enum
{
/* line_rendition_t */
DOUBLE HEIGHT TOP,
DOUBLE:HEI GHT:BOTTOM,
SINGLE_WIDTH,
DOUBLE WIDTH
} line-rendition t;
typedef struct
/* character t */
{
short int code;
character rendition t rendition;
character-attribute-t attribute;
graphic character s;t t character_set;
} character_t;
typedef struct
{
/* char_set_designator_t */
graphic character set t name;
short int first intermediate;
/* 0-47, O=no intermediate */
short int second intermediate;
/* 0-47 */
short int final;/* 0 indicates null entry */
} char set designator t;
typedef enUm {-ABSOLUTE, DISPLACED
typedef struct
{
/* save buffer t */
character-position_t position;
character rendition t rendition;
origin mode t origin mode;
graphic character set t left;
graphic-character-set-t right;
graphic-character-set-t gO;
graphic-character-set-t gl;
graphic-character-set-t g2;
graphic-character-set-t g3;
charact;r attribute t-attribute;
} save_buffer_t;
typedef enum { EIGHTY, ONE THIRTY TWO } column mode t;
typedef enum { UNCOUPLED, COUPLED-} cursor_coupling:mode_t;
typedef enum { FIXED, SETABLE } left right margins mode t;
typedef enum { STREAM, RECTANGULAR }-area ;xtent t ;
typedef short int lines-per-page_t;
/*-24, 25; 36, 72, 144 */
typedef short int columns-per-page_t; /* 80, 132 */
typedef short int number_of-pages_t;
/* 1, 2, 3, 4, 5, 6 */
/************ end of char_cell_types.h ****************/
8
momoulo'"
Digital Internal Use Only
EL-00070-04
04-0ct-1990
The following example illustrates storage declarations for the terminal state. Only those
state variables required for the desired conformance level and extensions need be present.
/**************
*
*
-
Module terminal state extern.h
-
/*
*************/
external storage declarations for terminal state
VT420 example
PAS 28-Feb-1989
*/
/*
*
*
This code can also used to allocate storage
by redefining "ext" to be null.
*/
tdefine ext extern
tinclude "terminal_state_types.h"
/*
*
terminal management
*/
ext conformance level t conformance level;
ext boolean t level l-extensions[NoMsER OF EXTENSIONS];
ext boolean-t level-2-extensions[NUMBER-OF-EXTENSIONS];
ext boolean:t level-3-extensions[NUMBER-OF-EXTENSIONS];
ext boolean t level-4-extensions[NUMBER-OF-EXTENSIONS];
/* VT420 has no optIons -ext boolean t product options[NUMBER OF OPTIONS];
--*/
-
-
-
-
long int terminal unit id;
/* Level 4, VT420 example */
device status t deVice-status;
transmIt rate-limit mode t transmit rate limit mode;
boolean_t pow;r_up_detected_flag; - /* Level 4" */
boolean t error detected flag; ,
/* Level 4 */
vt_confIguration_t vt_configuration; /* session mgmt ext */
control representation mode t
control representation mode;
/* Set-Up */
ext boolean_t lIne_local_mode;/* Set-Up */
ext
ext
ext
ext
ext
ext
ext
/*
*
Code Extension Layer
*/
ext
ext
ext
ext
ext
ext
ext
ext
ext
struct parse_stack comm_state;
/* ANSI parser state */
graphic character set t
designated graphic sets[4];
in use table t
in use table;
single-shift-t
Single-shift;
in control string t
in control string;
graphic character-set t
upS's;
/* Level 3 or 8-bit IA */
character set mode t character_set_mode;
character set mode t
environment thost-port_environment,
cl_transmission_mode;
tinclude "char_cell_extern.h"
mlllumr
/* character cell display */
Digital Internal Use Only
9
04·0ct·1990
EL·00070-04
1*
* keyboard processing
*1
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
keyboard action mode t
keyboard action mode;
auto_repeat_mode_t auto_repeat_mode;
cursor key mode t
cursor_key_mode;
keypad-mode t keypad_mode;
keyboa;d us;ge mode t
keyboard usage mode;
1* Level 3
caps shift lock mode t
caps_shift_lock_mode;
hold-screen mode t hold screen mode;
lock-mode tlock-mode; keyclick ;ode t
keyclick mode;
send receive ;ode t
send receive mode;
send-receive-mode-t
r send recei;e mode;
back;rrow_key_mode_t
b;ckar;ow_key_;ode;
1* Level 3
local key mode t
1* Level 4
c;mpose_key_mode,
alt key mode,
Fl key,F2-key,
F3:key,
F4 key;
F5 key-mode t
F5 key mode;
1* Level 4
keyboa;d en~oding mode t k;ybo~rd encoding mode; 1* Level 4
keyboard-dialect t
- keyboard dialect; 1* NRCS
graphic_~haracte;_set_t nrcs_list[MAX_NUM_DIALECTS];I* NRCS
*1
*1
*1
*1
*1
*1
*1
1*
*
printer port extension
*1
ext
ext
ext
ext
ext
ext
ext
ext
printer_controller_mode_t
auto-print_mode_t
print form feed mode t
print-extent mode t printer to h;st m;de't
printer:assignment_tenvironment t
printer_style_t
printer controller mode;
auto-print_mode; print form feed mode;
print-extent mode;
printer to h;st mode; 1* Level 3
printer-assignment; 1* sessions
printer:port_environment;
printer_style;
*1
*1
1*
* Graphics
*1
ext graphics cursor enable mode t
graphics_cu~sor_en;ble_;ode;
1*
* communications layer
*1
ext int host-port;
ext int printer-port;
1* ReGIS *1
1* logical unit number for comm port *1
1************** module char- cell- extern.h
1*
*************1
* external storage declarations for character cell display state
* PAS 28-Jul-1989
*1
10
mDmDDID~
Digital Internal Use Only
04-0ct-1990
EL-00070-04
#define MAX NUM LINES 73
#define MAX NUM COLUMNS 133
#define EMPTY CHARACTER 0
#define MAX NUM CHAR SETS 8
1* character set table entries *1
#define TABLE ASCII 0
#define TABLE LINE DRAWING 1
#define TABLE DEC SUPP 2
#define TABLE-NRCS 3
#define TABLE LATINi 4
#define TABLE-UPSS 5
tdefine TABLE TCS 6
tdefine TABLE-DRCS 7
1* Note ORCS must be last in search order
to replace others if identical *1
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
ext
character t
display[MAX NUM LINES] [MAX NUM COLUMNS];
line renditIon[MAx NUM LINES];line rendItion t
acti~e-position; char;cter-position_t
line t
top margin;
line-t
bottom margin;
left m;rgin;
1* Horiz scroll ext *1
column t
column t
right margin;
1* Horiz scroll ext *1
last ;olumn flag;
boolean t
acti~e display; 1* L3 or Status Dsply*1
active display t
status-display; 1* L3 or Status Dsply*1
status:display:t
char s;t table[MAX NUM CHAR SETS];
char set designator t
save-buffer t
cursor s;ve buffer;
char;cter r;ndition t
current rendition;
character-attribute-t current-attribute; 1* Selective Erase*1
- horizontal tab stops [MAX NUM COLUMNS];
boolean t
column mod;; 1* 132-Column Ext *1
column mode t
lines-per-page_t
lines~er-Fage;
1* Windowing *1
columns-per-page_t
columns-Fer-Fage; 1* Windowing *1
number_of-Fages; 1* Windowing *1
number_of-pages_t
scrolling_mode;
scrolling mode t
screen mode t screen_mode;
origin_mode_t
origin_mode;
auto_wrap_mode_t
auto wrap mode;
text cursor enable mode t text ~ursor enable mode;
insert repl;ce mod; t Insert r;placem;nt mod;;
new line mode t
new_line_mode;
cur;or coupling mode t
horizontal ~ursor coupling,
1* Windowing *1
vertical cursor coupling,
1* Windowing *1
page cur;or coupling;
1* Windowing *1
ext left right margIns mode t
left_rIght_margins_mode; 1* Horiz Scroll *1
ext area extent t
;ttribute change extent; 1* L4 or rect editing *1
1********** end of char_~ell_extern.h *************1
-
-
Digital Internal Use Only
11
04-0ct-1990
EL-00070-04
3.3 STATUS AND TEST
Upon request, a conforming device shall provide at the terminal interface a means of
returning device status information. Status information consists of either "Device Ready"
or "Device Malfunction". (See subhead 5, DEVICE STATUS REPORT.) The device status
shall be set upon power-up initialization or receipt of RESET TO INITIAL STATE (RIS).
See Video Systems Reference Manual - Documented Exceptions.
The architecture does not define the nature or duration of specific device test sequences.
The architecture provides a registry of test invocation control functions (Refer to DEC STD
138-0 Registry of Control Functions for Character-Imaging Devices) that may have different
effects on different products. However, failure of any applicable test sequences shall set
the device status to the "Device Malfunction" state.
3.3.1
Virtual Terminal Configuration
If the Multiple Sessions extension is supported, a conforming device shall provide a means
at the terminal interface of returning information on whether the terminal is configured
to support virtual terminals. Status information returned shall be in the form of a Device
Status Report (DSR) (see subhead 5, Device Status Report) and consist of: "Virtual
Terminals Not Enabled", ''Virtual Terminals Enabled Over Physical Lines", "Vll'tual
Terminals Available Through TD/SMP".
This feature is intended for terminal management use. Specific information on the state of
the Terminal Device/Session Management Protocol (TD/SMP) or other session management
protocol should be ascertained through the protocol handler.
3.3.2 Data Integrity
At Conformance Level 4, a conforming device shall provide a means at the terminal
interface of returning the status of a data integrity flag. Status information returned shall
be in the form of a Device Status Report (DSR) (see subhead 5 Device Status Report) and
consist of: "OK, no comm error detected since last report", "Error, a comm error has been
detected since last report", or "Power-up, No request since last power-up or reset".
This is an application feature for defensive programming, and not intended for terminal
management or communications use.
4
DEVICE INITIALIZATION
On power up, all state information (state) in the terminal shall be set to a known value, or
value previously selected by the user and stored through non-volatile means. This state is
referred to as the Power-Up State.
Since the architecture allows the Power-Up State of certain features to be set and stored
under local control (Set-Up and non-volatile memory for example), software cannot rely
on the values of this state after an appropriate initialization sequence is executed or after
the device is powered up. The values given in the algorithm below apply only to those
implementations in which the state cannot be set and stored locally by the terminal user.
The state defined by the architecture to which this indeterminate condition may apply is
limited to the following:
Digital Internal Use Only
EL-00070-04
04-0ct-1990
conformance level
host-port_environment
vt configuration
cl-transmission mode
transmit rate limit mode
character set-mode
upss
columns-per-page
lines-per-page
number_of-pages
status_display
column mode
scrollIng_mode
screen mode
auto_wrap_mode
text cursor enable mode
new line mode
horIzontal_tab_stops
vertical cursor coupling
horizontal curs~r coupling
page_cursor_couplIng
auto_repeat_mode
cursor key mode
caps_shift:lock_mode
keyboard usage mode
backarrow_key_;ode
alt key mode
compose-key mode
Fl key;odeF2:key:mode
F3 key mode
F4:key:mode
auto-print_mode
printer_controller_mode
print_form_feed_mode
print extent mode
printer to h~st mode
printer=:style graphics cursor enable mode
UDK definitions-(see DEC-STD-070-11, UDK Extension)
State Affected:
All terminal state. See subhead 3.2, Terminal State Declarations.
The following code example illustrates terminal management routines.
Algorithm:
/**************
/*
Module terminal_management.c
*************/
* terminal management routines
*
VT420 example
*/
/* get access to global terminal state */
tinclude "terminal state extern.h"
Digital Internal Use Only
13
04-Oct-1990
EL-00070-04
/* function declarations */
void hardware init();
void comm init();
void setup init();
void host state init();
void soft-termi;al reset();
int send char(); int send-string();
int send- int () ;
int send~')ex () ;
void power_up_initialization()
(
hardware init();
comm init () ;
setup init();
host state init();
} 7* end-procedure
/* actual hardware as needed */
/* communications layer */
/* features that are not host setable */
/* all host setable state */
power_up_initialization */
void setup init()
/* initialize local features that are not host setable */
{
host-port_environment = EIGHT_BIT;
vt configuration
SINGLE SESSION;
co;trol_representation_mode =
INTERPRET CONTROLS;
printer-port_environment = EIGHT_BIT;
printer style = NATIONAL ONLY;
}
/* end procedure setup_init */
=
/* NVM */
/* NVM */
/* NVM */
/* NVM */
void host_state_init()
{
line t
x;
column t y;
/* .... :-.............. */
/* do initialization */
/* Terminal Management */
conformance level = LEVEL 4;
/* NVM */
transmit rate limit mode
LIMITED;
/* NVM */
power up-detected flag = TRUE;
error-detected flag = FALSE;
vt co;figuration = SINGLE SESSION;
/* NVM */
/*-VT420 terminal unit ID-example (different for each unit) */
terminal_unit_id = Ox01000001;
/* HKO unit 1, NVM *1
=
/* Code Extension *1
upss
DEC_SUPPLEMENTAL_G;
=
1*
NVM
*1
in_use_table.cO = ASCII_C;
in use table.gl = ASCII G;
in:use:tab1e.invoked_gl-= GO;
in use table.c1 = SUPPLEMENTAL C:
in-use-table.gr = upss;
in:use:table.invoked_gr = G2;
designated_graphic_sets[O]
designated_graphic_sets[l]
14
mBDIO'"
ASCII_G;
= ASCII_G:
Digital Internal Use Only
04-0ct-1990
EL·00070·04
switch (conformance_level)
{
case LEVEL 1:
in use table.gr = ASCII G;
de;ignated graphic sets[2]
ASCII_G;
designated-graphic-sets[3]
ASCII_G;
c1_transmi;sion_mode = SEVEN_BIT;
character set mode
SEVEN_BIT_NATIONAL;
break;
case LEVEL 2:
case LEVEL-3:
case LEVEL 4:
designated graphic sets[2]
upss;
designated-graphic-sets[3]
upss;
c1 transmi;sion mode = EIGHT_BIT;
character set mode = EIGHT_BIT_MULTINATIONAL;
1*
1*
NVM
NVM
*1
*1
};
parse init(comm state); 1* initialize ANSI parser
single shift = NO SINGLE SHIFT;
in_control_string-= NOT_IN_CONTROL_STRING;
*1
1*
NVM
*1
1*
1*
1*
NVM
NVM
NVM
*1
*1
*1
1*
1*
1*
1*
NVM
NVM
NVM
NVM
*1
*1
*1
*1
1*
1*
1*
1*
NVM
NVM
NVM
NVM
*1
*1
*1
*1
1*
NVM
*1
1*
character cell display *1
for (y=l; y
3/14
Fa
Fa
Default Fa: 0
c
6/3
Response Format:
CSI
9/11
>
3/14
Fa
Fa
c
6/3
Description: The DA2 control requests or reports the identification code of the specific
product in which the interface is implemented. The request consists of a DA control
sequence with the private parameter code 3/14 (» and an omitted parameter or a
parameter value of zero (0).
The response to the DA2 request consists of a DA control sequence with the private
parameter code 3/14 (» followed by a variable number of parameters. The first parameter
indicates the product specific identification of the device. This parameter value shall be
registered with the architecture.
The second parameter indicates the revision level of the firmware or software implementing
the terminal management functions. Revision levels are generally noted by a real number
with one significant decimal. This number should be (not mandatory) multiplied by 10 and
used as the value of the second parameter.
Additional parameters may be present to indicate options installed in the device. These
options are implementation defined, and the number and meaning of the additional
parameter values will be product dependent, however, these values shall be registered with
the architecture.
State Affected: None
24
mDmDamO'"
Digital Internal Use Only
EL-00070-04
04-0ct-1990
Algorithm:
void device attributes 2()
{
int n;
send_char (Ox9B, host-port);
/* CSI */
send_int(PRODUCT_ID, host-port);
send_char(';', host-port);
send_int(REVISION_LEVEL, host-port);
/* Device IDs and options must be registered */
/* VT420 has no options -for (n=l; n
*
*
**
terminal
host system
application
process
I
EXTERNAL INTERFACE
*
*
system
--------------------------*--------------
*
I
* application I
* process I
*
I
--------------------------*-------------
firmware> *
** INTERNAL INTERFACE
I
I
I
I
physical
terminal
virtual
terminal
External and Internal Terminal Interfaces
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.1.4
Page 5-9
29-Jun-1990
Organization
To simplify
class, this
independent
of the ANSI
understanding the Character Cell Display service
section is divided into a number of largely
subsections which describe functionally related parts
host interface. These subsections are:
Display Coordinate System and Addressing
window Management
Visual Attributes and Renditions
Audible Indicator
Graphic Character Sets
Summary of Control Character Processing
Mode States
Editing Functions
OLTP Features
Saving and Restoring Terminal State
Other sections of the VSRM also describe parts of the ANSI host
interface.
5.2
TERMINOLOGY
Active Position - (1) The character position in a visual display
that is to image the graphic symbol representing the next graphic
or control character for which a graphic representation is
required (2) The character position in a logical display which
contains the character code, graphic rendition, and character set
of a graphic or control character for which a graphic
representation is required.
Advance - To move the active position in the direction of
increasing horizontal character position in a visual or logical
display.
Application - A hardware or software implementation of a process
or a device.
Application Program - A program that runs under control of an
operating system.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-10
29-Jun-1990
Audible Indicator - A warning "bell", or similar indicator
suitable to signal the operator's attention, primarily to warn of
certain error conditions. There are four functional categories of
bells in conforming terminals: Right Margin Bell, Warning Bell,
Required Error Bells, and Selectable Error Bells.
Backward - In the direction of decreasing horizontal character
position in a visual or logical display.
Blind Interchange - Information interchange in which no prior
agreements between sender and recipient are necessary in order to
achieve successful interpretation of the information, except
agreed-upon standards.
co
Set - A set of 32 control characters allocated to columns 0 and
1 of a code table.
C1 Set - A set of 32 control characters allocated to columns 8 and
9 of an 8-bit code table, or represented as ESCape Fe sequences in
7-bit environment with identical meaning.
Character Attribute - An attribute value which may be applied to a
character position, which affects its subsequent processing, as in
editing or retransmission.
Character Imaging Device - A device that gives a visual
representation of data in the form of graphic symbols using any
technology, such as a on a cathode ray tube.
In this
specification the term "character imaging device" does not apply
to hard copy devices (printers) which are not capable of dynamic
editing and reformatting of the displayed information.
Character Position - (1) The portion of a visual display that
images or is capable of imaging a graphic symbol.
(2) An
addressable element in a logical display containing sufficient
information to render a graphic symbol, including the character
code, visual attributes, logical attributes, and character set
designation.
Character Rendition - An attribute value which may be applied to a
character position, which affects its visual representation (see
Graphic Rendition) .
Control - A control character, an escape sequence, or a control
sequence that performs a control function.
Control Sequence Introducer (CSI) - The C1 control (represented by
a single character in 8-bits, or a two character ESC Fe sequence
in 7-bits) which initiates a control sequence. CSI is a prefix
affecting the interpretation of a limited number of contiguous bit
combinations.
Cursor, Cursor Symbol - A visual (blinking or non-blinking)
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-11
29-Jun-1990
symbol, usually a rectangle, diamond or underline that indicates
the Active Position on the display.
, Cursor Control - An editing function that moves the active
position.
Default - A function-dependent value that is assumed when no
explicit value, or a value of 0, is specified.
Delete - To remove displayed symbols and close up adjacent graphic
symbols to fill the gap.
Designate - To identify a set of characters that are to be
represented in a prescribed manner, in some cases immediately and
in others on the occurrence of a further control function.
Display - The area for visual presentation of data on cathode ray
tube and similar character imaging devices.
In this specification
the word "display" will always be qualified by the terms
"physical" (or "visual") and "logical", to differentiate between
the actual presentation surface and memory buffers containing
information to be presented.
Editor Function - A control that affects the layout or positioning
of previously entered or received information in a character
imaging device and is intended to be interpreted without remaining
in the data stream.
See Format Effector.
Empty Character - A character position in the logical display in
which no character code appears, and thus no character is rendered
in the visual display for this position.
In an empty character
position the character rendition, character attribute, and
character set values should be ignored.
Enter - To input information manually into a character imaging
device or to read information from an auxiliary device into a
character imaging device.
Erase - To remove displayed graphic symbols without closing up
adjacent symbols to fill the gap.
Fixed Space - A character that normally has no graphic
representation, occupies a character position in a visual display,
and is usually encoded as bit combination 2/0.
Following - Lines or character positions in the visual display
with larger numbered lines or larger numbered character positions
than that of the active position.
Font - A complete assortment of displayable graphic symbols in one
size or style.
Format Effector - A control that effects the layout or positioning
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-12
29-Jun-1990
of information in a character imaging device and may remain in the
data stream subsequent to interpretation and processing.
See
Editor Function.
Forward - In the direction of increasing horizontal character
position in a visual display.
Graphic Character - A character, other than a control character,
that has a visual representation normally handwritten, printed, or
displayed.
Graphic Rendition - A visual style of displaying a set of graphic
symbols.
Graphic Symbol - A visual representation of a graphic character or
a control for which a graphic representation is required.
Invoke - To cause a designated set of characters to be represented
by the prescribed bit combinations whenever those bit combinations
occur until an appropriate code extension function occurs.
Line - A set of adjacent character positions in a visual display
that have the same vertical position.
Logical Display - the lines and columns available for storing and
presenting graphic characters as seen by the application or host
computer. A Logical Display may be organized as a single
rectangular array of lines and columns (one page), or divided into
a number of identically sized pages, each of which is a
rectangular array of lines and columns.
Margin - A line which marks the upper or lower boundary of the
scrolling region (vertical scroll margin). A column which marks
the left or right boundary of the scrolling region (horizontal
scroll margin) .
Mode - A state of a device, or other sender or recipient, that
affects the interpretation of received information, the operation
of the sender or recipient, or the format of the transmitted
information.
Next - See Following.
Operating System - Software that controls the execution of
computer programs and may provide scheduling, debugging,
input/output control, accounting, compilation, storage assignment,
data management, and related services.
Page - An addressable area of a Logical Display organized as a
rectangular array of lines and columns.
The number of lines and
columns defines the Page Size.
Preceding - Lines or character positions in a visual display with
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-13
29-Jun-1990
smaller numbered lines or smaller numbered character positions
than that of the active position.
Private Use - A technique of encoding or representing information
in a prescribed, but nonstandard, way.
Received Data Stream - The stream of bit combinations received by
a character imaging device for purposes of information
interchange.
Represent - (1) To use a prescribed bit combination with the
meaning of a character in a set of characters that has been
designated and invoked.
(2) To use an escape sequence with the
meaning of an additional control character.
Scroll - An action whereby all of the graphic symbols of a visual
display are moved in a specified direction.
String Delimiter - A control that begins or ends a string of
characters in a data stream.
Tabulation - A technique of identifying character positions in a
visual display for the purpose of arranging information
systematically.
Tabulation Stop - An indication that a character position is to be
used for tabulation.
Transmit - To send data as a data stream for purposes of
information interchange.
Transmitted Data Stream - The stream of bit combinations sent by a
character imaging device when it is induced to transmit for
purposes of information interchange.
5.2.1
Code Extension Terms
This chapter also uses the following terms which are defined in
the "Code Extension Layer" section of the VSRM (DEC STD 70-3) :
Bit Combination
Character
Control Character
Control Function
Control Sequence
Control String
Escape Character (ESC)
Escape Sequence
Final Character
Intermediate Character
Numeric Parameter
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Parameter
Parameter String
Selective Parameter
Page 5-14
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.3
Page 5-15
29-Jun-1990
CHARACTER CELL DISPLAY STATE DECLARATIONS
/**************
module char_cell_types.h
*************/
/*
*
*
type declarations for character cell display state
PAS 28-Jul-1989
*/
typedef enum { JUMP, SLOW} scrolling mode t;
typedef enum { NORMAL SCREEN, REVERSE-SCREEN } screen mode t;
typedef enum { WRAP OFF, WRAP ON } auto wrap mode t;
typedef enum { TEXT-CURSOR OFF, TEXT CURSOR ON } text cursor enable mode t;
typedef enum { INSERT,-REPLACE } insert replace mode t;
typedef enum { NEW LINE OFF, NEW LINE ON } new line mode_t;
typedef short int Tine t;
typedef short int column t;
typedef short int page t ;
typedef struct
{
/* character position t */
line t line;
column t column;
page t-page;
} character position t;
typedef enum { TRUE, FALSE } boolean_t;
typedef struct
{
/* character rendition t */
boolean t bold;
boolean-t blink;
boolean-t underscore;
boolean-t reverse;
} character rendition t;
typedef struct {
/* character attribute t */
boolean t selective erase;
} character attribute t;
typedef enum
{
/* line rendition t */
DOUBLE HEIGHT TOP,
DOUBLE-HEIGHT-BOTTOM,
SINGLE-WIDTH,DOUBLE-WIDTH
} line-rendition t;
typedef struct
{
/* character t */
short int code;
character rendition t rendition;
character-attribute-t attribute;
graphic character set t character set;
} character t;
typedef struct {
/* char set designator t */
graphic_character_set_t name; -
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-16
29-Jun-1990
/* 0-47, O=no intermediate */
short int first intermediate;
short int second intermediate;
/* 0-47 */
short int final;/* 0 indicates null entry */
} char set designator t;
typedef enum {-ABSOLUTE, DISPLACED } origin_mode_t;
typedef struct
{
/* save buffer t */
character-position_t position;
character rendition t rendition;
origin mode t origin mode;
graphic character set t left;
graphic-character-set-t right;
graphic-character-set-t gO;
graphic-character-set-t gl;
graphic-character-set-t g2;
graphic-character-set-t g3;
character attribute t-attribute;
} save buffer t;
typedef enum { EIGHTY, ONE THIRTY TWO } column mode t;
typedef enum { UNCOUPLED, COUPLED-} cursor coupling-mode t;
typedef enum { FIXED, SETABLE } left right-margins mode t;
typedef enum { STREAM, RECTANGULAR }-area extent t ;
typedef short int lines-per-page_t;
/*-24, 25; 36, 72, 144 */
typedef short int columns-per-page_t;
/* 80, 132 */
typedef short int number_of-pages_t;
/* 1, 2, 3, 4, 5, 6 */
/************ end of char_cell_types.h ****************/
/************** module char cell extern.h *************/
/*
* external storage declarations for character cell display state
* PAS 28-Jul-1989
*/
tdefine MAX NOM LINES 73
tdefine MAX-NOM-COLUMNS 133
tdefine EMPTY CHARACTER 0
tdefine MAX NUM CHAR SETS 8
/* character set table entries */
tdefine TABLE ASCII 0
tdefine TABLE-LINE DRAWING 1
tdefine TABLE-DECSUPP 2
tdefine TABLE-NRCS 3
tdefine TABLE-LATINI 4
tdefine TABLE-UPSS 5
tdefine TABLE-TCS 6
tdefine TABLE-DRCS 7
/* Note DRCS must be last in search order
to replace others if identical */
ext character t
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-17
29-Jun-1990
display[MAX NUM LINES] [MAX NUM COLUMNS];
ext line rendition t
-line rendition[MAX NUM LINES];
ext character-position_t
active-position; ext line t
top margin;
ext line-t
bottom margin;
ext column t
left margin;
/* Horiz scroll ext */
ext column-t
right margin;
/* Horiz scroll ext */
ext boolean t
last column flag;
ext active display t
active display; /* L3 or Status Dsply*/
ext status-display-t
status-display; /* L3 or Status Dsply*/
ext char set designator t
char set table [MAX NUM CHAR SETS];
ext save-buffer t
cursor save buffer;
ext character rendition t
current rendition;
ext character-attribute-t current-attribute; /* Selective Erase*/
ext boolean thorizontal tab stops [MAX NUM COLUMNS];
ext column mode t
column mode; /* 132-Column Ext */
ext lines-per-page_t
lines-per-page;
/* Windowing */
ext columns-per-page_t
columns-per-page; /* Windowing */
ext number_of_pages_t
number_of-pages; /* Windowing */
ext scrolling mode t
scrolling mode;
ext screen mode t screen mode;
ext origin-mode-t
origin-mode;
ext auto wrap mode t
auto wrap mode;
ext text-cursor enable mode t
text cursor enable mode;
ext insert replace mode t
insert replacement mode;
ext new line mode t
new line mode;
ext cursor coupling mode t
horizontal cursor coupling,
/* Windowing */
vertical cursor coupling,
/* windowing */
page cursor coupling;
/* Windowing */
ext left right margins mode t
left rTght margins mode; /* Horiz Scroll */
ext area extent t attribute change extent; /* L4 or rect editing */
/********** end of char cell extern.h *************/
/* function declarations */ short int end of line(); void
scroll up(); void scroll down(); void scroll-left(); void
scroll-right(); void insert or replace character(); void
selectTve_erase_in_line(); void selective_erase_in_display();
5.3.1
Notes On Character Cell Display State
a.
An empty character is a character position in the Logical
Display in which no character code appears, and thus no
character is rendered in the visual display for this
position. In this implementation this is handled by a
null entry in the logical display structure, which should
be rendered as a space with normal rendition in the
visual display.
In other implementations this may be
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-18
29-Jun-1990
handled in a manner appropriate to the display list
structure, but the affect on the visual display should be
the same.
In an empty character position the character rendition,
character attribute, and character set values should be
ignored.
b.
The number of character sets available depends on the
conformance level and architecture extensions present.
See "Character Set Repertoire" in this chapter (DEC STD
70-5) .
See the "Terminal Management" Section (DEC STD 70-4) for a listing
of all terminal state, and initialization procedures.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.4
5.4.1
Page 5-19
29-Jun-1990
DISPLAY COORDINATE SYSTEM AND ADDRESSING
Logical Display
A conforming device shall provide the capability of storing and
presenting single-width graphic characters in a rectangular array
of lines and columns called a Logical Display Page.
The number of
lines and columns shall define the size of the Logical Display
Page, or Page Size. The entire Logical Display may consist of a
single page, or a number of pages of identical size.
All conforming devices shall support a single Logical Display Page
of 24 lines by 80 columns, extendable to 24 lines by 132 columns
when the "132 Column Mode" extension is present (DECCOLM, see
"Page Size and Arrangement") .
Level 4 devices, and Level 3 devices with the "Windowing
Extension" shall support commands to change the Logical Display
Page Size (DECSLPP and DECSCPP, see "Page Size and Arrangement") .
The actual Page Sizes supported shall be clearly specified in the
product documentation, and means shall be provided for software to
interrogate the size of the Logical Display Page. The Page Size
and number of pages in the Logical Display may also be
configurable by the user under local control.
Each character position in the Logical Display will consist of the
following information: a character code, a character rendition,
character attributes, and a character set.
The first position in a logical display page shall be at line 1,
column 1. Frequently this will correspond to the upper left
corner of the physical display with line numbers increasing
downward, and column numbers increasing to the right, but this
need not be true.
The graphic representation of
display surface will occupy a
hand corner is at the logical
the position of the character
each character on the physical
rectangular cell whose lower left
screen coordinate corresponding to
in the the array.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
1
1
n
e
s
24
80
132
80
132
+----------------------------------------+---------------------+
I
1
1
i
columns
Page 5-20
29-Jun-1990
single-width line
1
double-width line
40
66
-------------------------------------------------------------1
1
double-height line 7 top
double-height line / bottom
40
40
66
66
+----------------------------------------+---------------------+
Display Structure and Addressing
5.4.2
Active Position And Cursor
A conforming device shall maintain the line and column coordinates
of a single character position, known as the "Active Position",
which serves as a reference point for character insertion and
replacement as well as various control functions.
The Active
Position indicates the character position at which the next
operation is to begin.
The Active position does not necessarily correspond to the visual
indicator in the physical display known as the "Cursor Symbol".
However, in this specification the terms "Active Position" and
"Cursor" are used interchangeably in order not to conflict with
previous usage.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET TEXT CURSOR ENABLE MODE
Levels:
Page 5-21
29-Jun-1990
DECTCEM
2-4
Purpose: Select whether the text cursor symbol in the display has
a visual representation.
Set Format:
Reset Format:
CSI ? 25 h
CSI ? 25 1
Description: A conforming device shall provide a means of
enabling or disabling the visible cursor symbol. This mode shall
apply only to the text cursor symbol implemented by the Character
Cell Display service class.
In the set state (Text Cursor On),
which is the default, the text cursor symbol will be displayed.
In the reset state (Text Cursor Off), the text cursor symbol will
not be displayed.
When a request is received to turn off the cursor, it will be done
immediately (if not already off).
If a request is received to
enable the cursor, and the cursor is not already on, the cursor
will remain off for a small "initial" cycle, after which it will
become visible and begin its normal blinking cycle. This makes
the cursor blink with a steady duty cycle regardless of how fast
it is turned on and off.
Notes:
1.
There is some concern that a program might inadvertently
leave the text cursor turned off. It is suggested that
entering SETUP mode will always turn on the text cursor
while in SETUP mode, but that normally it be restored to
its previous state upon exiting SETUP mode. Also, a
means should be provided in SETUP mode to force the text
cursor to be re-enabled.
State Affected:
text cursor enable mode
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void set text_cursor_enable_mode()
{
if (conformance level >= LEVEL 2)
text cursor-enable mode = TEXT_CURSOR_ON;
}
void reset_text_cursor_enable_mode()
{
if (conformance level >= LEVEL 2)
text cursor-enable mode = TEXT CURSOR_OFF;
}
Known Deviations:
None
Page 5-22
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.4.3
Page 5-23
29-Jun-1990
Margins And Scrolling
A conforming device shall provide the capability of defining top
and bottom margins of a scrolling region. The top and bottom
marg~ns are two line numbers in a logical display page.
The top
margin must always have a lower line number than the bottom
margin.
Devices with the Horizontal Scrolling Extension shall provide the
ability to define left and right margins of a scrolling region.
The left and right margins are two column numbers in a logical
display page. The left margin must always have a lower column
number than the right margin.
Numerous editing and cursor control functions are defined relative
to the scrolling margins.
The default scrolling region at power-up or after reset is equal
to the size of the logical display page.
1
columns
80
132
+----------------------------------------+---------------------+
1
+
+
I
I
+left
+right
I
I
+margin
+margin I
I
+
+
I
I
+
top margin
+
I
I
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
+
/\
+
I
I
+
II
+
I
I
I
+
II
+
I
I
~
+
+
I
I
n
+/------ scrolling -------\+
I
I
e
+\------ region
-------/+
I
I
s
+
+
I
I
+
II
+
I
I
+
II
+
I
I
+
\/
+
I
I
1++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
I
+
bottom margin
+
I
I
241
+
+
I
I
+----------------------------------------+---------------------+
Margins and Scrolling Region
A scrolling region is defined as the area bounded by the top,
bottom, left, and right margins, which are set by DECSTBM and
DECSLRM. All scrolling, both vertical and horizontal, is limited
to this area.
Several controls are ignored or behave differently if the active
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-24
29-Jun-1990
position is outside certain boundaries of the scrolling region.
The following table lists these controls:
margins
T/B
L/R
+------+------+
DCH
ICH
0
0
X
X
DL
IL
X
X
X
X
X
X
X
X
*
*
0
0
0
DECDC
DECIC
IND
RI
DECBI
DECFI
I
I
I
I
I
I
I
I
I
I
I
I
I
*
*
+------+------+
0
X
=
Is affected.
Does not work outside
these margins.
0
=
Not affected.
Continues to work outside
these margins.
* =
If active position is inside margins,
affect is limited by margins.
If active position is outside margins,
control still has an affect,
but no scrolling can occur.
The following functions described in this sUbsection are used to
control scrolling:
DECSTBM
DECSLRM
DECLRMM
DECOM
DECSCLM
IND
RI
DECFI
DECBI
Set Top and Bottom Margins
Set Left and Right Margins
Left Right Margin Mode
Origin Mode
Scrolling Mode
Index
Reverse Index
Forward Index
Back Index
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
DECSTBM
SET TOP AND BOTTOM MARGINS
Levels:
Page 5-25
29-Jun-1990
1-4
Purpose: Change the top and bottom margin settings for the
scrolling region.
Format:
CSI
9/11
Pt
Pt
;
;
Pb
Pb
r
7/2
default Pt: 1
default Pb: last line
Description:
The DECSTBM control sets the values of the Top and
Bottom Margins of the scrolling region.
The new settings are
determined by the parameter values. The first parameter sets the
value of the Top Margin, and the second parameter sets the value
of the Bottom Margin. The default settings if either or both
parameters are omitted are the boundaries of the Logical Display
Page: one (1) for the Top Margin and twenty-four (24) for the
Bottom Margin when the Page Size is 24 lines.
Notes:
1.
Execution of this control causes the Active position to
be set to the page origin obeying Origin Mode (DECOM):
First column of first line if Origin Mode is in the reset
(Absolute) state; Top and Left Margins if Origin Mode is
in the set (Displaced) state.
2.
If the value specified for the Top Margin is equal to or
greater than the value specified for the Bottom Margin,
this control will be ignored (not executed) .
3.
If the value specified for the Bottom Margin is greater
than the number of lines in the Logical Display Page,
this control will be ignored (not executed) .
State Affected:
active position
top margin
bottom~argin
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-26
29-Jun-1990
Algorithm:
void set top and bottom margins (parv)
short int parv[MAX_NUM_PARAMETERS];
{
/* use defaults for omitted parameters */
if (parv[O] == 0) parv[O] = 1;
if (parv[l] == 0) parv[l] = lines_per_page;
if «parv[O] < parv[l]) && (parv[l] <= lines_per_page»
{
top margin = parv[O];
bottom margin = parv[l];
if (origin mode == ABSOLUTE)
{
active-position.line = 1;
active position. column = 1;
}
else
{
active-position.line = top margin;
active position. column = left_margin;
}
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET LEFT AND RIGHT MARGINS
Levels:
Page 5-27
29-Jun-1990
DECSLRM
4x (Horizontal Scrolling)
Purpose: Change the left and right margin settings for the
scrolling region.
Format:
CSI
9/11
PI
PI
;
;
Pr s
Pr 7/3
default PI: 1
default Pr: Last Column
Description:
The DECSLRM control sets the values of the Left
and Right Margins of the scrolling region. The new settings are
determined by the parameter values.
The first parameter sets the
value of the Left Margin, -and the second parameter sets the value
of the Right Margin.
The default settings if either or both
parameters are omitted are the boundaries of the Logical Display
Page:
one (1) for the Left Margin and eighty (80) for the Right
Margin when the Page Size is 80 columns wide.
Notes:
1.
Execution of this control causes the Active position to
be set to the page origin obeying Origin Mode (DECOM):
First column of first line if Origin Mode is in the reset
(Absolute) state; Top and Left Margins if Origin Mode is
in the set (Displaced) state.
2.
If the value specified for the Left Margin is equal to or
greater than the value specified for the Right Margin,
this control will be ignored (not executed) .
3.
If the value specified for the Right Margin is greater
than the number of columns in the Logical Display Page,
this control will be ignored (not executed) .
4.
This control function is only recognized when DECLRMM
(Left Right Margin Mode) is set.
5.
Setting the margins to other than their default values
(the boundaries of the Logical Display Page) may disable
smooth scrolling (DECSCLM).
State Affected:
active-position
left margin
right_margin
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-28
29-Jun-1990
Algorithm:
void set left and right margins(parv)
short int parv[MAX_NUM_PARAMETERS];
{
if ( (conformance level == LEVEL 4) &&
(level 4 extensions[HORIZONTAL SCROLL] -- TRUE) &&
(left_right_margins_mode == SETABLE) )
{
1* use defaults for omitted parameters *1
if (parv[O] == 0) parv[O] = 1;
if (parv[l] == 0) parv[l] = columns_per-page;
if «parv[O] < parv[l]) && (parv[l] <= columns_per_page))
{
left margin = parv[O];
right margin = parv[l];
if (origin mode == ABSOLUTE)
{
active-position.line = 1;
active position. column = 1;
}
else
{
active position. line = top margin;
active-position. column = left_margin;
}
}
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-29
29-Jun-1990
SET/RESET LEFT RIGHT MARGIN MODE
Levels:
DECLRMM
4x (Horizontal Scrolling)
Purpose: Change the state of Left Right Margin Mode between Not
Available (reset) and Available (set).
To set:
To reset:
CSI ? 69 h
CSI ? 69 1
(Available)
(Not Available - default)
Description: DECLRMM is a parameter to the Set Mode and Reset
Mode commands.
In the reset state, the left and right scrolling
margins in every page may not be moved through the DECSLRM
command, they are set to be at the extremes of the page.
In the
set state, DECSLRM commands are recognized, however, no line
attributes other than Single Wide may be used.
When DECLRMM is set, all line attributes currently in Page Memory
for the Session will be reset to Single Wide, Single High, and
DECDWL and DECDHL escape sequences, to change the line attribute
to Double Wide or Double Wide and High, will be ignored.
State Affected:
left right margins mode
line-rendition[MAX-NUM LINES]
left-margin
-right_margin
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-30
29-Jun-1990
Algorithm:
void set left right margins mode()
-
-
{
-
-
int i;
if ( (conformance level == LEVEL 4) &&
(level_4_extensions[HORIZONTAL_SCROLL] -- TRUE) )
{
for (i=O; i end_of_line(active_position.line»
active-position.column = end_of_line(active_position.line);
}
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-35
29-Jun-1990
Known Deviations:
On the VT100 and VT125, Index is affected by the setting of New
Line Mode, in the same manner as Line Feed.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
RI
REVERSE INDEX
Levels:
Page 5-36
29-Jun-1990
1-4
Purpose:
Move the Active Position upward one line, scrolling if
necessary.
Format:
RI
8/13
(ESC M)
Description:
The RI control moves the Active position upward in
the display by one line.
If the Active Position is already at the
Top Margin the display will scroll downward by one line.
If the
display scrolls, a blank line with all attributes off will appear
at the top margin.
Notes:
1.
If the Active Position is below the Top Margin when this
control is executed, the Active Position will not move
beyond the Top Margin.
If the Active position is above
the Top Margin (as the result of absolute cursor
positioning) it will still move upward by one line and no
scrolling will occur.
In this case, the Active Position
will not move beyond the first line of the display.
State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active-FositionAlgorithm:
void reverse_index()
{
if (active-Fosition.line == top margin)
scroll down(top margin, 1); else
if (active-F0sition.line > 1)
active-Fosition.line -= 1;
/* new line may have a different length - adjust column */
if (active-Fosition.column > end of line(active-Fosition.line»
active_position.column = end_of_line(active-F0sition.line);
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
FORWARD INDEX
Levels:
Page 5-37
29-Jun-1990
DECFI
4x (Horizontal Scrolling)
Purpose: Move the Active Position forward one column, scrolling
if necessary.
Format:
ESC
1/11
9
3/9
Description: The DECFI control causes the active position to move
forward one column.
If the active position was already at the
right margin, the contents of the Logical Display Page within the
right, left, top and bottom margins shifts left one column. The
column shifting beyond the left margin is deleted. A new column
is inserted at the right margin with all attributes turned off and
the cursor appears in this column.
If the active position is outside the left or right margin when
the command is received the active position moves forward one
column.
If the active position was at the right edge of the page,
the command is ignored.
Notes on DECFI:
1.
Lines of text are shifted one column regardless of their
line attributes. This means double-wide and double-size
lines will appear to shift twice as fast as single-width
lines.
State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
active-position--
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-38
29-Jun-l990
Algorithm:
void decfi()
{
if ( (conformance level == LEVEL 4) &&
(level_4_extensions[HORIZONTAL_SCROLL] -- TRUE)
{
if (active position. column == right margin)
scroll left (left margin, 1);
else
if (active_position. column < columns-per-page)
active_position. column += 1;
)
/* active line may not be columns_per-page long */
if (active_position.column > end_of_line(active-position.line))
active_position.column = end_of_line(active_position.line);
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-39
29-Jun-1990
BACK INDEX
DECBI
------------------------------------------------------------------
Levels:
4x (Horizontal Scrolling)
Purpose: Move the Active Position backward one column, scrolling
if necessary.
Format:
ESC
1/11
6
3/6
Description:
The DECBI control causes the active position to move
backward one column.
If the active position was already at the
left margin, the contents of the Logical Display within the left,
right, top and bottom margin shifts right one column.
The column
shifted beyond the right margin is deleted. A new column is
inserted at the left margin with all attributes turned off and the
cursor appears in this column.
If the active position is outside the left or right margin when
the command is received the active position moves backwards one
column.
If the active position was at the left edge of the page,
the command is ignored.
Notes on DECBI:
1.
Lines of text are shifted one column regardless of their
line attributes. This means double-wide and double-size
lines will appear to shift twice as fast as single-width
lines.
State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
activeyositionAlgorithm:
void decbi ()
{
if ( (conformance level == LEVEL 4) &&
(level_4_extensions[HORIZONTAL_SCROLL] -- TRUE)
{
if (activeyosition.column == left_margin)
scroll right (left margin, 1);
else
if (activeyosition.column > 1)
activeyosition.column -= 1;
}
}
Known Deviations:
None
)
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.4.4
Page 5-40
29-Jun-1990
Cursor Movement
This section describes the following functions used to control the
cursor position within the Logical Display Page:
CUU
CUD
CUF
CUB
CUP
HVP
CPR
DECXCPR
LNM
CR
LF
VT
FF
BS
NEL
Cursor Up
Cursor Down
Cursor Forward
Cursor Backward
Cursor Position
Horizontal/Vertical position
Cursor Position Report
Extended Cursor Report
Line Feed/New Line Mode
Carriage Return
Line Feed
vertical Tab
Form Feed
Backspace
Next Line
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-41
29-Jun-1990
CURSOR UP
CUU
Levels:
1-4
Purpose:
Move the Active Position upward by n lines.
Format:
CSI
9/11
Pn
3/?
A
4/1
default Pn: 1
Description:
The CUU control moves the Active Position upward
in the display.
The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
upward by one line. A parameter value of n moves the Active
Position upward by n lines.
Notes:
1.
If the Active Position is at or below the Top Margin when
the CUU control is executed, and an attempt is made to
move the Active Position above the Top Margin, the
control will be executed until the Active Position
reaches the Top Margin. The Active Position will not
move beyond the Top Margin.
2.
If the Active Line is above the Top Margin when the CUU
control is executed (due to absolute cursor positioning)
and an attempt is made to move the Active Position
outside of the addressable display, the control will be
executed until the Active Position reaches the first line
of the Page. The Active Position will not move beyond
the first line of the Page.
3.
No scrolling will occur as a result of this control.
4.
If the line to which the Active Position is moved
contains fewer columns than the Active Column, the Active
Column is set to the end of that line.
(This condition
will only occur if the Active Line is a single-width
line, and the line to which the Active Position is moved
is a double-width or double-height line. The Active
Column is not affected by the length of lines it moves
over by a repeat move caused by a parameter value greater
than one.)
State Affected:
active-position
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-42
29-Jun-1990
Algorithm:
void cursor up(parv)
short int-parv[MAX_NUM PARAMETERS];
{
short int n;
if (parv[O] == 0) n = 1;
else n = parv[O];
if (active-position.line >= top_margin)
{
if «active-position.line - n) >= top_margin)
active-position.line -= n;
else
active-position.line = top_margin;
}
else
{
if «active-position.line - n) >= 1)
active-position.line -= n;
else
active-position.line = 1;
}
/* new line may have a different length - adjust column */
if (active-position.column > end_of_line(active-position.line))
active-position.column = end_of_line(active-position.line);
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-43
29-Jun-1990
CUD
CURSOR DOWN
Levels:
1-4
Purpose:
Move the Active Position downward by n lines.
Format:
CSI
9/11
Pn
3/?
B
default Pn: 1
4/2
Description:
The CUD control moves the Active Position downward
in the display.
The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
downward by one line. A parameter value of n moves the Active
Position downward by n lines.
Notes:
1.
If the Active Position is at or above the Bottom Margin
when the CUD control is executed, and an attempt is made
to move the Active Position below the Bottom Margin, the
control will be executed until the Active Position
reaches the Bottom Margin.
The Active position will not
move beyond the Bottom Margin.
2.
If the Active Position is below the Bottom Margin when
the CUD control is executed (due to absolute cursor
positioning) and an attempt is made to move the Active
Position outside of the addressable display, the control
will be executed until the Active Position reaches the
bottom line of the Page.
The Active Position will not
move beyond the bottom line of the Page.
3.
No scrolling will occur as a result of this control.
4.
If the line to which the Active Position is moved
contains fewer columns than the Active Column, the Active
Column is set to the end of that line.
(This condition
will only occur if the Active Line is a single-width
line, and the line to which the Active Position is moved
is a double-width or double-height line.
The Active
Column is not affected by the length of lines it moves
over by a repeat move caused by a parameter value greater
than one.)
State Affected:
activeyosition
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-44
29-Jun-1990
Algorithm:
void cursor down(parv)
short int-parv[MAX_NUM_PARAMETERS];
{
short int n;
if (parv[O) == 0) n = 1;
else n = parv[O);
if (active-position.line <= bottom~argin)
{
if «active-position.line + n) <= bottom_margin)
active-position.line += n;
else
active-position.line = bottom_margin;
}
else
{
if «active-position.line + n) <= lines-per-page)
active position. line += n;
else
active_position. line = lines-per-page;
}
/* new line may have a different length - adjust column */
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-45
29-Jun-1990
CURSOR FORWARD
CUF
Levels:
1-4
Purpose:
Move the Active Position forward by n columns.
Format:
CSI
9/11
Pn
3/?
C
4/3
default Pn: 1
Description:
The CUF control moves the Active Position forward
in the display.
The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
forward by one column. A parameter value of n moves the Active
Position forward by n columns.
Notes:
1.
If the Active Position is at or inside the Right Margin
when the CUF control is executed, and an attempt is made
to move the Active Position beyond the Right Margin, the
control will be executed until the Active Position
reaches the Right Margin. The Active Position will not
move beyond the Right Margin.
2.
If the Active Position is beyond the Right Margin when
the CUF control is executed (due to absolute cursor
positioning) and an attempt is made to move the Active
Position outside of the addressable display, the control
will be executed until the Active Position reaches the
last column of the Active Line. The Active Position will
not move beyond the last column of the Active Line.
3.
No scrolling will occur as a result of this control.
State Affected:
active_position
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-46
29-Jun-1990
Algorithm:
void cursor forward (parv)
short int-parv[MAX_NUM_PARAMETERS];
{
short int n;
if (parv[O] == 0) n = 1;
else n = parv[O];
if (active position. column <= right_margin)
{
if «active position.column + n) <= right_margin)
active position. column += n;
else
active_position. column = right_margin;
}
else
{
if ( (active position. column + n) <=
end of Tine (active position.line)
active-position. column += n;
else
active_position.column = end of line(active_position.line);
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
CURSOR BACKWARD
Page 5-47
29-Jun-1990
CUB
Levels:
1-4
Purpose:
Move the Active Position backward by n columns.
CSI
9/11
Format:
Pn
3/?
D
4/4
default Pn: 1
Description:
The CUB control moves the Active Position backward
in the display. The distance moved is determined by the parameter
value. A parameter value of zero or one moves the Active Position
backward by one one column. A parameter value of n moves the
Active Position backward by n columns.
Notes:
1.
If the Active Position is at or inside the Left Margin
when the CUB control is executed, and an attempt is made
to move the Active Position beyond the Left Margin, the
control will be executed until the Active Position
reaches the Left Margin. The Active position will not
move beyond the Left Margin.
2.
If the Active position is beyond the Left Margin when the
CUB control is executed (due to absolute cursor
positioning) and an attempt is made to move the Active
Position outside of the addressable display, the control
will be executed until the Active Position reaches the
first column of the Active Line. The Active Position
will not move beyond the first column of the Active Line.
3.
No scrolling will occur as a result of this control.
State Affected:
active-position
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-48
29-Jun-1990
Algorithm:
void cursor backward(parv)
short int-parv[MAX_NUM_PARAMETERS];
{
short int n;
if (parv[O] == 0) n = 1;
else n = parv[O];
if (active position. column >= left_margin)
{
if «active position.column - n) >= left_margin)
active position. column -= n;
else
active_position. column = left_margin;
}
else
{
if «active position.column - n) >= 1)
active-position.column -= n;
else
active-position.column = 1;
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-49
29-Jun-1990
CURSOR POSITION
Levels:
CUP
1-4
Purpose: To position the Active Position at an absolute line and
column address.
Format:
CSI
9/11
Pl ;
3/? ;
Pc
3/?
H
4/8
default Pl: 1
default Pc: 1
Description:
The CUP control moves the Active Position to an
absolute line and column address as specified by the parameter
values. The first parameter specifies the new line address, and
the second parameter specifies the new column address.
If either
parameter is omitted, or is explicitly set to zero (0), that
parameter value will default to one (1).
Notes:
1.
This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the top and
left margin) .
2.
If an attempt is made to move the Active Position outside
of the addressable display area (the entire screen if
Origin Mode is reset, or the scrolling region if Origin
Mode is set), the Active Position will be moved in the
direction indicated to the boundary of the addressable
area, but will not be moved beyond the boundary of the
addressable area.
State Affected:
activeyosition
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-50
29-Jun-1990
Algorithm:
void cursor-position(parv)
short int parv[MAX_NUM_PARAMETERS];
{
line t y;
column t X;
Y = parv[O];
X = parv[l];
if (y == 0) y = 1;
if (x == 0) x = 1;
if (origin mode -- DISPLACED)
{
if ( «top margin-1) + y) <= bottom margin
active-position.line = (top_margin-1) + y;
else
active-position.line = bottom_margin;
if ( «left margin-1) + x) <= right margin
active-position.column = (left_margin-1) + x;
else
active-position.column = right_margin;
}
else
{
if (y <= lines-per-page)
active-position.line = y;
else
active-position.line = lines_per-page ;
if (x <= end_of_line(active-position.line))
active-position.column = x;
else
active-position.column = end_of_line(active-position.line);
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-51
29-Jun-1990
HORIZONTAL/VERTICAL POSITION
HW
Levels:
1-4
Purpose:
address.
Move the Active Position to an absolute line and column
(fallback implementation)
Format:
CSI
9/11
PI
PI
;
;
Pc
Pc
f
6/6
default PI: 1
default Pc: 1
Description:
The HW control moves the Active Position to an
absolute line and column address as specified by the parameter
values.
The first parameter specifies the new line address, and
the second parameter specifies the new column address.
If either
parameter is omitted, or is explicitly set to zero (0), that
parameter value will default to one (1).
Notes:
1.
The HW control is provided for interface compatibility
with printing terminals.
This implementation is not in
conformance with existing standards.
Conforming software
will use the Cursor Position control to affect movement
of the cursor, since the operation of Horizontal/Vertical
Position may be redefined in future levels of the
architecture.
2.
This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the top and
left margin) .
3.
If an attempt is made to move the Active Position outside
of the addressable display area (the entire screen if
Origin Mode is reset, or the scrolling region if Origin
Mode is set), the Active Position will be moved in the
direction indicated to the boundary of the addressable
area, but will not be moved beyond the boundary of the
addressable area.
State Affected:
active-position
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void horizontal_vertical-position(parv)
short int parv[MAX_NUM_PARAMETERS];
{
/* steal code from CUP */
cursor-position(parv);
}
Known Deviations:
None
Page 5-52
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
CPR
CURSOR POSITION REPORT
Levels:
Page 5-53
29-Jun-1990
1-4
Purpose: Report the line and column address of the Active
Position.
Request Format: CSI
9/11
Report Format:
CSI
9/11
3/6
n
6/14
PI
3/?
;
;
6
Pc
3/?
R
5/2
default PI: 1
default Pc: 1
Description:
The CPR control is transmitted by the terminal in
response to a specific Device Status Report (DSR) control. The
parameter values indicate the Active Line and Active Column values
at the time the DSR control is received by the terminal.
Notes:
1.
This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the Top and
Left Margin) .
State Affected:
none
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void cursor_position_report()
{
line t y;
column t X;
if (origin mode == DISPLACED)
{
y = active position. line - top margin + 1;
X = active-position.column - left_margin + 1;
}
else
{
y
x
=
=
active position. line;
active-position.column;
}
send_char (Ox9B, host-port);
send_int(y, host-port);
send_char(';', host-port);
send_int(x, host-port);
send char('R', host port);
}
Known Deviations:
None
/* CSI */
Page 5-54
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-55
29-Jun-1990
EXTENDED CURSOR POSITION REPORT
Levels:
DECXCPR
3x (Windowing), 4
Purpose: Report the line, column, and page address of the Active
Position.
Request Format: CSI
9/11
?
3/15
6
3/6
n
6/14
Report Format:
?
3/15
PI
3/?
3/11
CSI
9/11
;
Pc
3/?
;
3/11
Pp
3/?
R
5/2
default PI, Pc, Pp: 1
Description:
The DECXCPR control is transmitted by the terminal
in response to a specific Device Status Report (DSR) control. The
parameter values indicate the Active Line, Column, and Page values
at the time the DSR control is received by the terminal.
The
default condition with no parameters present, or parameters of 0,
is equivalent to a cursor at the home position on the first Page.
Notes:
1.
This control is affected by the setting of Origin Mode.
If Origin Mode is reset, addressing is performed relative
to the page origin (first column in the first line).
If
Origin Mode is set, addressing is performed relative to
the origin of the current scrolling region (the Top and
Left Margin) .
State Affected: None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void x cursor_position_report()
{
line t y;
column t x;
if (origin mode == DISPLACED)
{
y = active position. line - top margin + 1;
x = active position. column - left_margin + 1;
}
else
{
y = active position. line;
x = active position. column;
}
send_char (Ox9B, host-port);
/* CSI */
send char('?', host port);
send-int ( y , host-port);
send-char (' ; , , host-port);
send-int (x,
host-port);
send-char(';', host-port);
send-char(active position.page, host-port);
send-char('R', host port);
}
Known Deviations:
None
Page 5-56
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-57
29-Jun-1990
SET/RESET NEW LINE MODE
Levels:
LNM
1-4
Purpose: Change the state of New Line Mode between New Line Off
(reset) and New Line On (set).
CSI 20 h
CSI 20 I
Set Format:
Reset Format:
Description: A conforming device shall provide a means of
selecting whether a received Line Feed (LF), vertical Tab (VT), or
Form Feed (FF) character shall be treated as a single instance of
that character [reset state = no new line], or that each of these
characters is handled on receipt-by additionally returning the
Active Position to the first column of the display [set state =
new line].
It should be noted that setting of this mode also
affects the processing of the Carriage Return (CR) key, which
transmits a two-code sequence (CR LF) when New Line Mode is in the
set state.
(Note:
This mode should not be used in the set state by
conforming software.)
State Affected:
new line mode
Algorithm:
void set new_Iine_mode()
{
new line mode
=
NEW LINE_ON;
}
void reset_new_Iine_mode()
{
new line mode
= NEW_LINE_OFF}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-58
29-Jun-1990
CARRIAGE RETURN
CR
Levels:
1-4
Purpose:
Move the Active Position to the Left Margin.
Format:
CR
0/13
Description: The CR control moves the Active Position to the Left
Margin.
If the Active Position is before the left margin, or
outside the top and bottom margins, the cursor moves to the first
column of the Active Line.
State Affected:
activeyosition
Algorithm:
void carriage return()
{-
-
if «activeyosition.column >= left_margin) &&
(active position. line >= top margin) &&
(activeyosition.line <= bottom_margin))
activeyosition.column = left_margin;
else
activeyosition.column = 1;
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
LINE FEED
Levels:
Page 5-59
29-Jun-1990
LF
1-4
Purpose: Move the Active Position downward one line, scrolling if
necessary.
Format:
LF
0/10
Description:
The LF control moves the Active Position downward
in the display by one line.
If the Active Position is already at
the Bottom Margin the display will scroll upward by one line.
Notes:
1.
If the Active position is above the Bottom Margin when
this control is executed, the Active Position will not
move beyond the Bottom Margin.
2.
If the Active Position is below the Bottom Margin when
this control is executed (as the result of absolute
cursor positioning) it will still move downward by one
line and no scrolling will occur. In this case, the
Active Position will not move beyond the bottom line of
the display.
3.
If the line to which the Active Position is moved
contains fewer columns than the Active Column, the Active
Column is set to the end of that line.
4.
This control is affected by the setting of New Line Mode.
If this mode is reset, no change will occur in the Active
Column unless the line below the Active Line is shorter
than the Active Line (see note 2). If the mode is set,
the control causes the Active Column to be set to the
first column of the line into which the Active Position
is moved.
Conforming software is recommended to use the
two character sequence (CR LF) rather than New Line mode
for widest compatibility.
5.
Note that the fundamental differences between this
control and the CUD control are the effect of New Line
Mode and the occurrence of scrolling on reaching the
Bottom Margin.
6.
The LF control is identical in function to the IND
(Index) control when New Line Mode is in the reset (No
New Line) state.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-60
29-Jun-1990
state Affected:
display[MAX NUM LINES] [MAX NOM COLUMNS]
active-position-Algorithm:
void line feed()
{
if (new line mode == NEW LINE ON) carriage_return();
if (active-position.line-== bottom~argin)
scroll up (top margin, 1);
else
if (active-position.line -< lines-per-page)
active-position.line += 1;
/* new line may have different length - adjust column */
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
VERTICAL TAB
Levels:
Page 5-61
29-Jun-1990
VT
1-4
Purpose: Move the Active Position downward one line, scrolling if
necessary.
(fallback implementation)
Format:
VT
0/11
Description:
The VT control moves the Active position downward
in the display by one line.
If the Active position is already at
the Bottom Margin the display will scroll upward by one line.
Notes:
1.
The implementation of the VT control is a fallback
mechanism for display terminals which is intended to
provide compatibility with printers which correctly
implement this function.
2.
This control is identical in function to the Line Feed
(LF) control.
It is provided for software compatibility
with printer output.
It should be noted, however, that
printers will implement this function differently.
It is
therefore recommended that software use the Line Feed
control to perform this function instead of vertical Tab.
State Affected:
display [MAX NUM LINES] [MAX NUM COLUMNS]
active-positionAlgorithm:
void vertical_tab()
{
line feed();
/* fallback implementation */
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
FORM FEED
Page 5-62
29-Jun-1990
FF
1-4
Levels:
Purpose: Move the Active Position downward one line, scrolling if
necessary.
(fallback implementation)
Format:
FF
0/12
Description:
The FF control moves the Active Position downward
in the display by one line.
If the Active position is already at
the Bottom Margin the display will scroll upward by one line.
Notes:
1.
The implementation of the FF control is a fallback
mechanism for display terminals which is intended to
provide compatibility with printers which correctly
implement this function.
2.
This control is identical in function to the Line Feed
(LF) control.
It is provided for software compatibility
with printer output.
It should be noted, however, that
printers will implement this function differently.
It is
therefore recommended that software use the Line Feed
control to perform this function instead of Form Feed.
State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active-position-Algorithm:
void form feed ()
{
line feed();
/* fallback implementation */
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-63
29-Jun-1990
BACK SPACE
BS
Levels:
1-4
Purpose:
Move the Active Position one column to the left.
Format:
BS
0/8
Description:
The BS control moves the Active Position backward
in the display by one column.
Notes:
1.
If the Active Position is at or inside the Left Margin
and within the Scroll Area, it will not move beyond the
Left Margin.
2.
If the Active Position is already before the Left Margin,
the Active Position will move left one column unless it
is at the first column of the Active Line.
The Active
Position will not move beyond the beginning of the Active
Line.
3.
The BS control is not affected in any way by the setting
of Auto Wrap Mode. Under no circumstances does the
Active Position advance to the previous line on reaching
the beginning of the Active Line.
State Affected:
activeyosition
Algorithm:
void back space()
-
{
if (activeyosition.column > left margin)
activeyosition.column -= 1;
else
{
if ( «activeyosition.column != left margin) I I
(activeyosition.line < top margin) I I
(activeyosition.line > bottom_margin)) &&
(active position. column > 1)
)
activeyosition.column -= 1;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
NEXT LINE
Page 5-64
29-Jun-1990
NEL
Levels:
1-4
Purpose: Move the Active position to the Left Margin of the next
line, scrolling if necessary.
NEL
8/5
Format:
(ESC E)
Description:
The NEL control moves the Active position to the
Left Margin of the next line.
If the Active Line is equal to the
Bottom Margin, the Active Line is not incremented, but instead the
display scrolls upward by one line.
If the Active Position is
before the left margin, or outside the top and bottom margins, it
will move to the first column of the next line, but not beyond the
last line on the page.
Notes:
1.
This control is identical to sending Line Feed (LF) with
Line Feed New Line Mode set.
It is also identical to
sending Carriage Return (CR) followed by Line Feed (LF).
Software is recommended to always use the combination of
Carriage Return followed by Line Feed (CR LF) to achieve
this effect for widest compatibility.
State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active_position-Algorithm:
void next line()
{
carriage return();
line feed();
}
-
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.4.5
Page 5-65
29-Jun-1990
Horizontal Tabulation
A conforming device shall provide the ability to set a horizontal
tabulation stop at each display column. These boolean indicators
must be capable of being set or reset in any possible combination.
It should be noted that only tab stops are stored by the device,
not tab characters.
Setting of horizontal tab stops may be performed both as a remote
and local function, and therefore the settings at any point in
time is indeterminate. However, when no local provision is made
for the setting and/or storage of user defined tabulation stops,
the following default states shall be used by conforming devices.
These settings should also apply to the factory default settings
for a conforming device.
tab stops
=
columns 9,17,25,33,41,49,57,65,73,81,89,97,105,113,121,129
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
TABULATION CLEAR
TBC
Levels:
1-4
Purpose:
Clear Horizontal Tab Stops.
Format:
Page 5-66
29-Jun-1990
CSI
9/11
Ps
3/?
g
default Ps: 0
6/7
Description:
The TBC control provides a means of clearing or
removing previously set Horizontal Tab Stops.
The range of
positions affected by this control is determined by the parameter
value. An omitted parameter or a parameter value of zero (0)
cause the control to clear only a tabulation stop set at the
Active Column. A parameter value of three (3) causes the control
to clear all Horizontal Tab Stops in the display.
State Affected:
horizontal_tab_stops[MAX_NUM_COLUMNS]
Algorithm:
void tabulation clear(parc, parv)
short int parc;
short int parv[MAX_NUM_PARAMETERS];
{
column t X;
short int n;
if (parc == 0) parc = 1;
for (n=O; n top margin) &&
(active-position.line < bottom_margin»
outside = FALSE;
else
outside = TRUE;
if ( (active-position.column <
end_of_line(active-position.line»
&&
«active-position.column != right_margin)
I I (outside==TRUE»
active-position.column += 1;
(active-position.column <
end_of_line(active-position.line»
&&
(horizontal_tab_stops[active-position.column]
«active-position.column != right margin) I I
(outside==TRUE»
);
active-position.column += 1);
for
(;
}
Known Deviations:
None
!= TRUE)
&&
Page 5-69
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
HTS
HORIZONTAL TABULATION SET
Levels:
1-4
Purpose:
Set a Horizontal Tab Stop at the Active Column.
Format:
HTS
8/8
(ESC H)
Description:
The HTS control causes a Horizontal Tab Stop to be
set at the column position indicated by the value of the Active
Column at the time this control is received.
Notes:
1.
None of the other Horizontal Tab Stop settings are
affected by execution of this control.
State Affected:
Algorithm:
void horizontal_tabulation_set()
{
horizontal tab stops[active position.column]
}
-
-
Known Deviations:
-
None
=
TRUE;
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.4.6
Page 5-70
29-Jun-1990
Page Size And Arrangement
Levelland Level 2 conforming devices support a single Logical
Display Page of 24 lines by 80 columns, extendable to 24 lines by
132 columns when the "132 Column Mode" extension is present
(DECCOLM) .
Level 4 devices, and Level 3 devices with the "Windowing
Extension" shall support commands to change the Logical Display
Page Size (DECSLPP and DECSCPP). The actual Page Sizes supported
shall be clearly specified in the product documentation, and means
shall be provided for software to interrogate the size of the
Logical Display Page (see "Terminal State Interrogation"). The
Page Size and number of pages in the Logical Display may also be
configurable by the user under local control.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET COLUMN MODE
Levels:
lX,
2X,
3X,
Page 5-71
29-Jun-1990
DECCOLM
4X
Purpose: Change the state of Column Mode between Eighty (reset)
and One Thirty Two (set).
Set Format:
Reset Format:
CSI ? 3 h
CSI ? 3 1
Description: A conforming device may provide as an extension the
capability of selecting BO-column [reset state = eighty] or
132-column [set state = one_thirty_two] display format.
Selecting Eighty or One Thirty Two Column Mode causes the display
data to be cleared, the-scrolling region to be eliminated, and the
Active Position to be set to the display origin (1,1), even if the
terminal was already in the selected state.
Notes:
1.
The font used to display Page Memory may change when the
number of columns on the page changes to better match the
screen. Control of when the font changes may be provided
as a Set-Up option.
2.
If the Host Writable Status Line is enabled, receipt of
this sequence will clear both the main display and the
Host Writable Status Line.
State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line rendition[MAX NUM LINES]
active position
top margin
bottom margin
column-mode
left margin
right margin
columns-per_page
left_right_margins_mode
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void set column_mode()
{
line t y;
column t X;
column mode = ONE THIRTY TWO;
columns-per-page ~ 132;
for (y=l; y SO) active-position.column = SO;
if (right margin> SO) right margin = SO;
/* optional font change */if (columns-Fer_page > SO) select normal_font();
columns_per-page = SO;
}
else
/* set columns per page to 132 */
/* optional font change */
if (columns-Fer_page <= SO) select_condensed_font();
columns_per-Fage = 132;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET LINES PER PAGE
Page 5-75
29-Jun-1990
DECSLPP
Levels:
3X (Windowing), 4
Purpose:
Set the number of lines per page in the Logical Display.
Format:
CSI
9/11
Pn
3/?
t
7/4
Description:
This sequence sets the number of display lines per
page according to the numeric parameter.
If the parameter is
omitted or zero, the page length is defaulted to 24.
If the
number of lines specified is not one of the values supported by
the implementation, the next higher supported number of lines per
page is assumed.
If the number of lines specified exceeds the
maximum number supported, the maximum number supported will be
used.
DECSLPP does not cause Page Memory to be cleared, however,
information contained in a larger page may appear in successive
smaller pages, if the new height of the pages selected by the
DECSLPP is too small to hold the information.
DECSLPP does not cause the scrolling regions to be reset, or the
Active Position to move, except under the following circumstances:
The scrolling margins may be reset to the extremes of the new Page
Configuration if the current scrolling margin exceeds the physical
limits of the new Page height; and, the Active Position will move
to the same column in the maximum available line, if the Active
Position exceeds the available number of lines in the new page
size.
Conformance to Level 4 requires support for 3 pages of 24 lines.
Implementation Guideline
The VT420 can configure its off-screen memory to
either 3 pages of 24 lines, 2 pages of 25 lines, 2
pages of 36 lines, or I page of 72 lines in
double-session mode, or 6 pages of 24 lines, 5
pages of 25 lines, 4 pages of 36 lines, 2 pages of
72 lines, or I page of 144 lines in single-session
mode.
State Affected:
lines-per_page
number of pages
act ive-posit ion
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
top margin
bottom_margin
Algorithm:
void set lines per page (parv)
short int parv[MAX_NUM_PARAMETERS);
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING)==TRUE)
{
if (parv[O) <= 24)
{
lines-per-page = 24;
number_of-pages = 3;
}
else if (parv[O) == 25)
{
lines-per-page = 25;
number_of-pages = 2;
}
else if (parv[O) <= 36)
{
lines-per-page = 36;
number of pages = 2;
}
-else
{
lines-per-page = 72;
number_of-pages = 1;
}
if (active position. line > lines-per_page)
active position. line = lines_per_page;
if (active position.page > number of pages)
active-position.page = number_of-pages;
if (top_margin > lines-per-page)
top margin = 1;
if (bottom margin > lines per page)
bottom_margin = lines_per_page;
}
}
Known Deviations:
None
Page 5-76
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.4.7
Page Movement
NEXT PAGE
Levels:
Page 5-77
29-Jun-1990
NP
3x (Windowing), 4
Purpose: To move the Active Position ahead one or more pages in
the Logical Display.
Format:
CSI
9/11
Pn
U
3/?
5/5
Description:
This sequence causes the Active Position to move
ahead a number of pages, specified by the parameter.
If the
parameter value is zero (the default) or one, the active position
moves ahead 1 page.
If the sequence calls for a page beyond the
last page of display memory, the highest numbered page is used.
NP moves the Active Position to the home position in the new page
obeying Origin Mode.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
state Affected:
activeyosition
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-78
29-Jun-1990
Algorithm:
void next-page(parv)
short int parv[MAX_NUM PARAMETERS);
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING)==TRUE)
{
if (parv[O) == 0) parv[O) = 1;
if «active-position.page + parv[O) <= number_of-pages)
active-position.page += parv[O);
else
active-position.page = number_of-pages ;
if (origin mode = DISPLACED)
{
active-position.line = top margin;
active-position.column = left_margin;
}
else
{
active position. line = 1;
active-position.column = 1;
}
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PRECEDING PAGE
Levels:
Page 5-79
29-Jun-1990
PP
3x (Windowing), 4
Purpose:
To move the Active Position back one or more pages in
the Logical Display.
Format:
CSI
9/11
Pn
3/?
v
5/6
Description: This sequence causes the active position to move
back a number of pages, specified by the parameter.
If the
parameter value is zero (the default) or one, the active position
moves back 1 page.
If the sequence calls for a page before the
first page of display memory, the first page is used. PP moves
the active position to the home position in the new page obeying
Origin Mode.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
active_position
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Algorithm:
void preceding page (parv)
short int parv[MAX_NDM_PARAMETERS];
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{
if (parv[O] == 0) parv[O] = 1;
if (active-position.page > parv[O])
active-position.page -= parv[O];
else
active-position.page = 1;
if (origin mode = DISPLACED)
{
active position. line = top margin;
active-position.column = left_margin;
}
else
{
active position. line = 1;
active-position. column = 1;
}
}
}
Known Deviations:
None
Page 5-80
29-Jun-1990
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
PPA
PAGE POSITION ABSOLUTE
Levels:
Page 5-81
29-Jun-1990
3x (Windowing), 4
Purpose:
To move the Active Position to the specified page in the
Logical Display.
Format:
CSI
9/11
Pn
3/?
SP
2/0
P
(default Pn: 1)
5/0
Description: This sequence moves the Active position to the
corresponding line and column on the n-th page. If there are
fewer than n pages in display memory, the highest numbered page is
used.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
activeyosition
Algorithm:
void page position absolute(parv)
short int parv[MAX~UM_PARAMETERS];
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{
if (parv[O] == 0) parv[O] = 1;
if (parv[O] <= number of pages)
activeyosition.page =-parv[O];
else
activeyosition.page = number_of_pages;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PAGE POSITION RELATIVE
Levels:
Page 5-82
29-Jun-1990
PPR
3x (Windowing), 4
Purpose: To move the Active Position forward to the n-th
succeding page in the Logical Display.
Format:
CSI
9/11
Pn
3/?
SP
2/0
Q
(default Pn:
1)
5/1
Description:
This sequence moves the active position to the
corresponding line and column of the n-th succeding page.
If the
sequence calls for a page beyond the last page of display memory,
the highest numbered page is used.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
activeyosition
Algorithm:
void pageyosition relative(parv)
short int parv[MAX_NUM_PARAMETERS];
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{
if (parv[O] == 0) parv[O] = 1;
if «activeyosition.page + parv[O]) <= number_ofyages)
activeyosition.page += parv[O];
else
activeyosition.page = number_ofyages;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PAGE POSITION BACKWARD
Levels:
Page 5-83
29-Jun-1990
PPB
3x (Windowing), 4
Purpose: To move the Active Position back to the n-th preceding
page in the Logical Display.
Format:
CSI
9/11
Pn
3/?
SP
2/0
R
(default Pn: 1)
5/2
Description:
This sequence moves the active position to the
corresponding line and column on the n-th preceding page.
If the
sequence calls for a page before the first page of display memory,
the first page is used.
Whether or not the new page is displayed depends upon the setting
of DECPCCM.
State Affected:
activeyosition
Algorithm:
void pageyosition_backward(parv)
short int parv[MAX_NUM~ARAMETERS];
{
if ( (conformance level == LEVEL 4) I I
(level_3_extensions[WINDOWING]==TRUE)
{
if (parv[O] == 0) parv[O] = 1;
if (activeyosition.page > parv[O])
activeyosition.page -= parv[O];
else
activeyosition.page = 1;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.5
Page 5-84
29-Jun-1990
WINDOWING EXTENSION
The Windowing Extension supports Logical Display Page sizes that
are larger or smaller than the physical display. A rectangular
area of the screen (physical display) that displays information
from a Logical Display Page is called a window.
Conforming devices may provide local window management features
for creating and manipulating more than one window on the physical
display at a time (guideline).
The following functions described in this subsection are used to
control how an area of the Logical Display is mapped to a window
on the physical display.
DECHCCM
DECVCCM
DECPCCM
DECRQDE
DECSNLS
SU
SD
Horizontal Cursor Coupling Mode
Vertical Cursor Coupling Mode
Page Cursor Coupling Mode
Request Displayed Extent
Select Number of Lines per Screen (documented
exception)
Pan Down
Pan Up
The Windowing Extension also supports two commands for changing
the the size of the Logical Display Page (DECSLPP and DECSCPP, see
"Page Size and Arrangement"). Finally, if more than one page of
display memory is supported, the Windowing Extension includes
commands to move the active position among the pages (NP, PP, PPA,
PPR, and PPB, see "Page Movement") .
The Windowing Extension may be provided at Level 1 or higher of
the Character Cell Display service class, and is indicated by the
extension parameter 18 in the Device Attributes (DA) response.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-85
29-Jun-1990
SET/RESET HORIZONTAL CURSOR COUPLING MODE
Levels:
DECHCCM
3x, 4x (Windowing)
Purpose: Change the state of Horizontal Cursor Coupling Mode
between coupled (set state, page moves horizontally in the window
to keep cursor visible), and uncoupled (reset state).
To set:
To reset:
CSI ? 60 h
CSI ? 60 I
(coupled)
(uncoupled - default)
Description: DECHCCM is a parameter to the Set Mode and Reset
Mode commands.
In the reset (uncoupled) state, when the active
position within a page goes left or right of the borders of the
displayable area (window), the page does not move with respect to
the window to keep the cursor visible. The cursor is not shown in
this case. The cursor is said to be "uncoupled" from the display.
In the set state, when the active position within a page goes left
or right of the borders of the displayable area (window), the page
is moved the minimum amount to an 8 column boundary in the
horizontal direction to keep the cursor position visible. The
cursor is said to be "coupled" to the display.
Notes on DECHCCM:
1.
Horizontal Cursor Coupling does not need to be provided
when there is no way for a Logical Display Page to have
more columns than can be shown in the narrowest window.
2.
Horizontal Cursor Coupling may be enabled or disabled
under local control in Set-Up.
3.
If a Set Mode command setting DECHCCM is received while
the Active Column is not visible on the display, the page
is moved to include the Active Column.
4.
Whether or not the cursor is actually visible may also
depend on the state of Vertical and Page Cursor Coupling
(DECVCCM and DECPCCM) .
5.
Existing implementations move the page the minimum amount
to make the cursor visible. Experience suggests moving
the minimum amount to an 8 column boundary would make the
display easier to follow for the user (less frequent
movement) .
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET VERTICAL CURSOR COUPLING MODE
Levels:
Page 5-86
29-Jun-1990
DECVCCM
3x, 4x (Windowing)
Purpose: Change the state of Vertical Cursor Coupling Mode
between coupled (set state, page moves vertically in window to
keep cursor visible), and uncoupled (reset state).
To set:
To reset:
CSI ? 61 h
CSI ? 61 I
(coupled - default)
(uncoupled)
Description: DECVCCM is a parameter to the Set Mode and Reset
Mode commands.
In the reset state, when the active position
within a page goes above or below the borders of the displayable
area (window), the page does not move with respect to the window
to keep the cursor visible. The cursor is not shown in this case.
The cursor is said to be "uncoupled" from the display.
In the set
state, when the active position within a page goes above or below
the borders of the displayable area (window), the page is moved
the minimum amount in the vertical direction to keep the cursor
position visible. The cursor is said to be "coupled" to the
display.
Notes on DECVCCM:
1.
Vertical Cursor Coupling may be enabled or disabled under
local control in Set-Up.
2.
If a Set Mode command setting DECVCCM is received while
the Active Line is not visible on the display, the page
is moved to include the Active Line.
3.
Whether or not the cursor is actually visible may also
depend on the state of Horizontal and Page Cursor
Coupling (DECHCCM and DECPCCM) .
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET PAGE CURSOR COUPLING MODE
Levels:
Page 5-87
29-Jun-1990
DECPCCM
3x, 4x (Windowing)
Purpose: Change the state of Page Cursor Coupling Mode between
coupled (set state, switch page in window to keep cursor visible),
and uncoupled (reset state).
To set:
To reset:
CSI ? 64 h
CSI ? 64 1
(coupled - default)
(uncoupled)
Description: DECPCCM is a parameter to the Set Mode and Reset
Mode commands.
In the reset state, when the active position moves
to a new page in a multiple page configuration, the display is not
refreshed to keep the cursor visible. The cursor is not shown in
this case. The cursor is said to be "uncoupled" from the display.
In the set state, when the active position moves to a new page,
the destination page is refreshed on the Main Display to keep the
cursor position visible. The cursor is said to be "coupled" to
the display.
Notes on DECPCCM:
1.
Page Cursor Coupling may be enabled or disabled under
local control in Set-Up.
2.
If a Set Mode command setting DECPCCM is received when
the Active Page containing the cursor is not visible on
the display, the Active Page is refreshed on the Main
Display.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-88
29-Jun-1990
REQUEST/REPORT DISPLAYED EXTENT
DECRQDE/DECRPDE
Levels:
3x, 4x (Windowing)
Purpose:
To determine the area of page memory currently visible
in the display window.
Request form:
Report
form:
CSI
9/11
2/2
CSI
9/11
Ph ; Pw ; Pml ; Pmt ; Pmp
Pmp
Pw ; Pml
Pmt
Ph
"
v
7/6
"
2/2
w
7/7
Description:
The DECRQDE sequence, which takes no parameters,
causes the device to respond with a DECRPDE control function
describing the area of Page Memory being displayed on the physical
screen.
The DECRPDE parameters provide the following information:
Ph
- The number of lines (height) of Page Memory being
displayed in the window.
This does not include any
status line (see "Status Display").
If no lines from
the active session are visible, 0 is returned (see
"Session Management") .
Pw
- The number of columns (width) of Page Memory being
displayed in the window. Pw is not necessarily 0
when Ph is O.
Ph should be used to determine whether
any lines are visible.
Pml - The column in Page Memory that is displayed in the
leftmost column of the window.
Pmt - The line in Page Memory that is displayed in the
topmost line of the window.
Pmp - The page of Page Memory that is being displayed
through the window.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SELECT NUMBER OF LINES PER SCREEN
Levels:
Page 5-89
29-Jun-1990
DECSNLS
Documented Exception (Windowing)
Purpose: To select a font size and corresponding maximum number
of lines that will fit on the physical display.
Format:
CSI
9/11
Pn
Pn
*
2/10
I
7/12
Description: DECSNLS selects the maximum number of lines which
can be displayed on the screen by choosing a corresponding font
size.
Pn is a numeric parameter between 1 and 255 which indicates the
number of lines which can be displayed on the screen at one time.
If a value not directly supported by the terminal is selected, the
next larger size supported will be used.
If Pn is greater than
the largest number of lines available, the largest number
supported will be used.
The number of lines per screen that can
be supported will be clearly specified in the product
documentation.
Although DECSNLS selects a font height which determines the
maximum number of lines which can be displayed, the actual number
of data lines displayed can be limited by other factors including
the Page Size, whether there is a Status Display, and local window
management functions if any. Applications can determine the
actual number of lines displayed using the Request Display Extent
(DECRQDE) control sequence.
Notes on DECSNLS:
I
I
I
I
I
.I
I
I
I
I
I
I
1.
The terminal will not display more lines than are
contained on a single page within a single window.
2.
A Status Display, if enabled, may occupy lines that would
otherwise be available for showing data from the Logical
Display Page.
3.
Unused lines will be left blank at the bottom of the
window, or screen.
4.
DECSNLS is a "User Preference Feature" intended for
terminal management use.
It should not be modified by
application software except in response to a user
request.
The terminal may provide a means to lock
DECSNLS under local control (User Features Lock in
Set-Up) to prevent host modification.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-90
29-Jun-1990
5.
It is suggested that software specify Pn to match the
Logical Display page sizes supported. This will provide
the best compatibility between implementations.
6.
The terminal may provide a local mechanism to change
DECSNLS automatically when the Page Size is changed
("auto resize window") .
Implementation Guideline
The VT420 supports three different font heights
which allow either 24, 39 or 49 data lines to be
displayed on the screen, plus a status line.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-91
29-Jun-1990
PAN DOWN (SCROLL UP)
Levels:
SU
3x, 4x (Windowing)
Purpose: To cause the current page to move up with respect to the
window making another line visible at the bottom.
Format: CSI
9/11
Pn
Pn
S
5/3
(default Pn: 1)
Description: Causes the entire visible contents of the current
page to move up one or more lines on the physical displ~y
according to the parameter. The line at the top border of the
window is no longer seen, and a new line appears at bottom border
of the window for each position moved. A numeric parameter of
zero or one causes the page to move one line.
The window cannot be moved beyond the boundaries of the page.
This control affects what is visible on the physical display only.
No movement of data within the Logical Display occurs. The Active
position does not change.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-92
29-Jun-1990
PAN UP (SCROLL DOWN)
Levels:
SD
3x, 4x (Windowing)
Purpose: To cause the current page to move down with respect to
the window making another line visible at the top.
Format:
CSI
9/11
Pn
Pn
T
5/4
(default Pn: 1)
Description: Causes the entire visible contents of the current
page to move down one or more lines on the physical display
according to the parameter. The line at the bottom border of the
window is no longer seen, and a new line appears at top border of
the window for each position moved. A numeric parameter of zero
or one causes the page to move one line.
The window cannot be moved beyond the boundaries of the page.
This control affects what is visible on the physical display only.
No movement of data within the Logical Display occurs. The Active
position does not change.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6
Page 5-93
29-Jun-1990
VISUAL RENDITIONS
This subsection describes functions used to control the visual
appearance of characters on the display. Attributes to be
controlled include screen background (light or dark), character
size (double wide and double size line attributes), character
emphasis (bold, blink, underline, reverse), and character color
when the Color Text Extension is implemented.
The following control functions are described herein:
DECSCNM - Screen Mode
Line Renditions
DECSWL - Single width Line
DECDWL - Double-Width Line
DECDHLT - Double-Height Line Top
DECDHLB - Double-Height Line Bottom
Character Renditions
SGR - Select Graphic Rendition
Color Text Extension (SGR parameters)
DECCTR - Color Table Report
DECSTGLT - Select Text/Graphics Look-Up Table
(Documented Exception)
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET SCREEN MODE
Levels:
Page 5-94
29-Jun-1990
DECSCNM
1-4
Purpose: Change the state of Screen Mode between Normal (reset)
and Reverse (set) screen.
CSI ? 5 h
CSI ? 5 1
Set Format:
Reset Format:
Description: A conforming device shall provide the capability of
operating the physical display in either "normal" [reset state =
normal] or "reverse" [set state = reverse] screen. The Screen
Mode setting al-lows the terminal operator to define his screen
state with respect to normal character rendition. Changing the
mode reverses the definitions of the foreground and background
colors.
The actual color values are not specified by the
architecture, and are implementation defined. All character
renditions must be achievable as defined on both normal and
reverse screens.
Note: Conforming software should not depend on the speed of
execution when changing Screen Mode.
It may take as long as the
time required to repaint the entire screen, depending on the
hardware implementation.
State Affected:
screen mode
Algorithm:
void set screen_mode()
{
screen mode
=
REVERSE_SCREEN;
}
void reset_screen_mode()
{
screen mode
= NORMAL_SCREEN;
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.1
Page 5-95
29-Jun-1990
Line Renditions
A conforming device shall support the following line renditions:
o
o
o
o
single-height,
single-height,
double-height,
double-height,
single-width
double-width
double-width top
double-width bottom
Only one rendition may be set per line (they are mutually
exclusive). Setting double-width or double-height renditions
doubles the character cell width within the line, but does not
affect the addressing of characters in the line (within the
constraints of the physical display). For example, the character
in column 5 of a single-width line will still be addressed as
column 5 if the line rendition is changed to double-width,
although the character field will now start in column 9 of the
physical display. Furthermore, when the line rendition is set to
double-width or double-height, character positions cannot be
addressed which are more than half the current value of the right
edge of the display.
Note: Conforming software will not draw only the top or the
bottom of double-height lines. When double-height lines are used,
both the top and bottom must be displayed in adjacent line
positions. Otherwise, the visual display of the line and the
cursor symbol registration is UNDEFINED.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-96
29-Jun-1990
SINGLE-WIDTH LINE
Levels:
DECSWL
1-4
Purpose: Set the Line Rendition of the Active Line to
single-width
Format:
ESC
1/11
#
2/3
5
3/5
Description:
Setting this attribute causes all characters
indicated by the codes contained in the Active Line to be
displayed in single-width rendition.
Notes:
1.
Setting this attribute on a line which was previously
double-width will cause the line length to be doubled.
2.
Setting this attribute does not cause data contained in
the Active Line to be lost.
State Affected:
line rendition[MAX NUM LINES]
active_position
Algorithm:
{
short int base;
base = (active position.page-1) * lines per page;
line renditionTactive position. line + base]-= SINGLE_WIDTH;
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-97
29-Jun-1990
DOUBLE-WIDTH LINE
Levels:
DECDWL
1-4
Purpose:
Set the Line Rendition of the Active Line to
double-width.
Format:
ESC
1/11
#
2/3
6
3/6
Description:
Double-width characters are achieved by displaying
the characters indicated by the codes contained in the Active Line
in double-width rendition.
Notes:
1.
Setting this attribute causes the length of the Active
Line to be reduced by half.
2.
Setting this attribute causes data which is beyond the
end of the Active Line after execution of the control to
be lost.
3.
This control does not operate when DECLRMM (Left Right
Margin Mode) is set.
State Affected:
line rendition[MAX NUM LINES]
active position
display [MAX_NUM_LINES] [MAX_NUM_COLUMNS]
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-98
29-Jun-1990
Algorithm:
void double_width_line()
{
column t X;
short int base;
base = (active-position.page-l) * lines-per-page;
line_rendition[active-position.line + base] = DOUBLE_WIDTH;
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
for (x=end_of_line(active-position.line)+l;
x<=colurnns_per-page ;
x++)
{
display[active-position.line + base] [x] .code = EMPTY_CHARACTER;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-99
29-Jun-1990
DOUBLE-HEIGHT LINE
DECDHLT,DECDHLB
Levels:
1-4
Purpose:
Set the Line Rendition of the Active Line to
double-height top or double-height bottom.
Format:
#
ESC
1/11
3
3/3
top
2/3
ESC
1/11
#
4
3/4
bottom
2/3
Description:
Double-height characters are achieved by setting
the Line Rendition of adjacent lines to double-height top and
double-height bottom.
Setting double-height top causes the upper
half of the characters indicated by the codes contained in the
Active Line to be displayed in double-height and double-width
rendition.
Setting double-height bottom causes the lower half of
the characters contained in the Active Line to be displayed in
double-height and double-width rendition.
Notes:
1.
Conforming software will not draw only the top or the
bottom of double-height lines. When double-height lines
are used, both the top and bottom must be displayed in
adjacent line positions.
Otherwise, the visual display
of the line and the cursor symbol registration is
UNDEFINED.
2.
Since double-height also implies double-width, setting
this attribute causes the length of the Active Line to be
reduced by half.
3.
Setting this attribute causes data which is beyond the
end of the Active Line after execution of the control to
be lost.
4.
This control does not operate when DECLRMM (Left Right
Margin Mode) is set.
State Affected:
line rendition[MAX NUM LINES]
active position
display [MAX_NUM_LINES] [MAX_NUM_COLUMNS]
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-100
29-Jun-1990
Algorithm:
void double height line top()
-
{
--
column t X;
short int base;
base = (active-position.page-1) * lines~er-page;
line rendition[active position. line + base] = DOUBLE HEIGHT TOP;
if (active-position.column > end_of line(active-position.line»
active-position.column = end_of_lrne(active-position.line);
for (x=end of line (active position. line) +1;
x<=columns-per-page;x++)
{
display[active-position.line + base] [x] . code = EMPTY_CHARACTER;
}
}
void double_height_line_bottom()
{
column t X;
short int base;
base = (active-position.page-1) * lines-per_page;
line_rendition[active-position.line + base] = DOUBLE_HEIGHT_TOP;
if (active-position.column > end_of_line(active-position.line»
active-position.column = end_of_line(active-position.line);
for (x=end_of_line(active-position.line)+l;
x<=columns-per-page;
x++)
{
display[active-position.line + base] [x] . code = EMPTY_CHARACTER;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.2
Page 5-101
29-Jun-1990
Character Renditions
Each character cell in the display has a set of visual attributes
associated with it. These attributes can be defined using the
concept of foreground and background values. A character cell
consists of a rectangular area filled with a background color, and
a character pattern written in a foreground color. Background and
foreground values are at least binary in nature (i.e., they must
have at least two clearly distinguishable visual states) .
Characters are rendered in the physical display by some
combination of the background and foreground states.
The actual
values and meanings of the background and foreground colors are
not specified by the architecture, and are implementation defined.
A conforming device shall provide normal, bold, underline, blink,
and reverse renditions for each character in the display.
These
renditions can be combined in any manner for each character
position independently. The architecture requires that each
rendition and every possible rendition combination be individually
distinguishable one from the other, without affecting the ability
to recognize the character pattern within the cell. Graphic
renditions apply to all graphic character codes (2/1 to 7/14
inclusive, and 10/0 to 15/15 inclusive) as well as to the Space
character (2/0).
5.6.2.1
Normal Rendition -
Normal rendition defines the rendering of characters in the
physical display in its "natural" state, that is, where the
character is rendered in the display foreground against a field of
display background. Normal rendition is the absence of any
special rendition of the character cell.
(Note: Normal rendition
of characters is dependent on the state of the Screen Mode, which
is used to define the values of the foreground and background
colors.)
5.6.2.2 Bold Rendition - Bold rendition of characters may be
achieved either by emphasizing the display foreground without
changing the background characteristics of the cell, or by
intensifying the background color while holding the foreground
value constant.
5.6.2.3 Blink Rendition - Blink rendition is achieved by
alternating the stable rendition of a character with a different
rendition at a fixed rate, with a duty cycle of approximately one
second.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-102
29-Jun-1990
5.6.2.4 Underscore Rendition - Underscore rendition is achieved
by the addition of a single horizontal bar extending the full
width of the character field and rendered in the display
foreground.
The bar must be easily distinguishable from the
underline character (5/15).
5.6.2.5 Reverse Rendition - Reverse rendition is achieved by
using the current value of the foreground color as the cell
background, and the current value of the background color as the
foreground.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-103
29-Jun-1990
SELECT GRAPHIC RENDITION
Levels:
SGR
1-4
Purpose: Designate the graphic rendition to be applied to all
subsequent characters entered into the display.
Format:
CSI
9/11
Ps ;
Ps ;
; Ps
; Ps
m
default Ps: 0
6/13
Description:
The SGR control selects the graphic rendition
(visual attribute) to be applied to all subsequent characters
entered into the display. The parameter values indicate the
combination of renditions to be selected as indicated in the
following table (for both Levelland Level 2)
Parameter
Rendition
o
All renditions off
Bold
Underscore
Blink
Negative (reverse) image
1
4
5
7
The following additional values are recognized in Level 2
operation. Although these values may be recognized when the
terminal is operating as a Level 1 device, conforming software
shall not rely on this feature.
Parameter
Rendition
22
24
25
27
Normal intensity (Bold off)
Not Underscore
Steady (not Blink)
Positive image
Notes:
1.
All other parameter values shall be ignored unless they
are part of a well defined extension to the architecture.
2.
Renditions may be selected in any combination, and will
be rendered appropriately. Selecting additional
renditions does not affect the setting of previously
selected renditions (newly selected renditions will be
combined with previously selected renditions) unless all
renditions are turned off (parameter value zero (0».
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
3.
Page 5-104
29-Jun-1990
In no way does the selection of current rendition affect
the rendition of characters already entered into the
display.
State Affected:
Algorithm:
void select graphic rendition(parc, parv)
short int-parc; short int parv[MAX_NUM~ARAMETERS];
{
short int n;
if (parc == 0) parc = 1;
for (n=O; n
40
41
42
43
44
45
46
47
49
background color 0
background color 1
background color 2
background color 3
background color 4
background color 5
background color 6
background color 7
default background color
black
red
green
yellow
blue
magenta
cyan
white
A device may provide means, either under software or local
control, to modify these colors and may provide means to save the
modified colors in non-volatile memory.
5.6.3.2
Interaction with Other Visual Renditions -
The foreground color and background color are maintained as part
of the current rendition. As new characters are written to the
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-107
29-Jun-1990
display, the current rendition is used to update the attribute
bits associated with-each character in display memory.
Selecting the Reverse Rendition (SGR parameter 7) will, if the
Reverse Rendition is not already set, be- equivalent to invoking
the current foreground color as the new background color, and the
current background color as the new foreground color.
Likewise,
selecting the Positive Rendition (SGR parameter 27) will, if the
positive Rendition is not already set, be equivalent to invoking
the current foreground color as the new background color, and the
current background color as the new foreground color.
SGR parameters 30-37 and 39, the nine foreground color specifiers,
will set the foreground color without regard to whether the
Reverse Rendition is set. Likewise, SGR parameters 40-47 and 49,
the nine background color specifiers, will set the background
color without regard to whether the Reverse Rendition is set.
SGR parameter 0 (all renditions off) will reset the foreground and
background color attributes to their defaults (equivalent to SGR
parameters 39 and 49).
SOFT TERMINAL RESET (DECSTR) will
similarly cause the foreground and background color attributes to
be reset.
When the Color Text Extension is present, the Bold Rendition (SGR
parameter 1) should be distinguished by a heavier weight font
(Guideline).
It is preferable not to use a separate color
(increased intensity) for bolding in order to keep it distinct
from the other color text attributes.
Changing between normal and reverse screen mode (DECSCNM) will
affect which attribute bits from display memory are used to render
the text foreground and background color.
It does not affect the
current rendition, or how the current rendition is applied to the
character attribute bits associated with each character in display
memory.
The architecture does not specify the default text foreground or
background colors.
It is recommended however that normal screen
mode correspond to lighter text on a darker background (not
mandatory).
The factory default for screen mode is device
dependent. A device may provide means to save the screen mode in
non-volatile memory so as to override the factory default at
power-up.
5.6.3.3 Color Maps - A color map is a table that associates a
binary value in display memory with a color that can be produced
on the display. During display refresh, the active color map is
used to translate color values from display memory to colors that
appear on the screen. The size of the active color map cannot
exceed 2**N entries where N is the number of bits used to
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-108
29-Jun-1990
represent a color in display memory (often the number of bit
planes) .
A device can have many color maps of which only one is active at
time, or can assign color map entries from a single color map to
different applications, limiting the size of each application's
color map.
Color maps can be read-only (fixed), or read-write
(modifiable under software control).
Applications often model color selection as asking for a
particular color (non-indexed, absolute color specification,
read-only), or asking for a particular color map entry (indexed
color, read-write). When using indexed color, it is normal to
allow the application to modify a color map entry causing all
objects written with that color index to change color on the
display.
Conforming devices may implement the ANSI SGR colors as indexed or
non-indexed, and may allow selecting between these two models
under local control.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.3.4
Page 5-109
29-Jun-1990
Color Table Report (DECCTR) -
A conforming device that supports the TSI and Color Text
Extensions, and has a color table shall be capable of reporting
the color table in the form of a DECCTR sequence as follows.
Color Table Request/Report/Restore
DECCTR
Levels:
2x, 3x, 4x (TSI and Color Text)
Purpose:
To Request, Report, and Restore the contents of
the color table.
Request
Format:
CSI 2
;
Pu $
9/11 3/2 3/11 3/? 2/4
Report
Format:
DCS 2
s D ... D ST
$
9/0 3/2 2/4 7/3 D ... D 9/12
(DECTSR Ps=2)
Restore
Format:
DCS 2
D ... D ST
$
P
9/0 3/2 2/4 7/0 D ... D ST
(DECRSTS Ps=2)
u
7/5
(DECRQTSR Ps=2)
Where D ... D consists of groups of 5 parameters as follows:
Pc; Pu; Px; Py; Pz / Pc; Pu; Px; Py; Pz /
...
Pc is the color number 0-255.
Pu is the color coordinate system
o = illegal
1 = HLS (hue 0-360, lightness 0-100, saturation 0-100)
2 = RGB (red 0-100, green 0-100, blue 0-100)
Px, Py, Px are values in the color coordinate
system specified by Pu.
T
is the semicolon character (3/11)
/ is the slach character (2/15)
Description: DECRQTSR with parameter 2 is sent from the host to
the terminal to request a color table report.
The terminal
responds with a DECTSR control with parameter 2 and each color
table entry given as a group of 5 parameters in the data string.
To load or restore a previously reported color map, the host
transmits the DECRSTS control with parameter 2 and the desired
color map definitions in the data string. When loading the color
map, only the index entries specified are changed.
When using DECRQTSR to request a color table report, you can
include an additional parameter Pu to select the color coordinate
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-110
29-Jun-1990
system the terminal uses to report the color map (O=default,
l=HLS, 2=RGB).
5.6.3.5
Default Color Assignment (Guideline) -
When indexed color is used, the following color map assignments
are recommended to maximize compatibility among implementations
when the colors are not specified explicitly (not mandatory) .
"Normal" text foreground and background refers to when Screen Mode
is reset.
Four or more plane (16 or more color) color map:
Color
----0 black
1 blue
2 red
3 green
4 magenta
5 black
6 white
7 gray 50%
Mono
Text Use
black
gray-2
gray-4
gray-6
gray-l
gray-3
gray-5
white
normal background
8 gray 25%
black
gray-2
gray-4
gray-6
gray-l
gray-3
gray-5
white
9
10
11
12
13
14
15
blue*
red*
green*
magenta*
cyan*
yellow*
gray 75%
black text
white text
normal foreground
blue text
red text
green text
magenta text
cyan text
yellow text
bold text (VT340)
* = may be less saturated
If more than four planes are supported, this series of 16 colors
can be repeated as needed.
Explainatory Note
DECterm uses these assignments directly, though
colors corresponding to map entries 9-14 are not
less saturated.
The VT340 uses these assignments except that color
5 is cyan, and color 6 is yellow. These were
changed to black and white to make black and white
ANSI text colors not dependent on the default
foreground and background colors in DECterm.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-111
29-Jun-1990
Color map entries 0-3 match the VT240 default
colors.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.6.3.6
Page 5-112
29-Jun-1990
Color Interaction Among Modes And Data Syntaxes
(Guideline) -
ANSI Color Text, Sixels, and ReGIS can all support indexed color
using a similar color model. A conforming device may share a
single color map among these protocols so that changing a color
definition in one protocol will affect the color map used by the
other protocols. Support for the option of sharing the same color
map is recommended, but not mandatory. Conforming software should
not depend on cross protocol side effects if maximum portability
is desired.
5.6.3.7
Alternative Text Rendition Mapping (Guideline) -
Some previous terminals which do not support ANSI Color Text
allowed other SGR parameters to select text colors.
VT241
Color Entry
o
1
2
3
normal text background
reverse graphic rendition (SGR 7)
bold
graphic rendition (SGR 1)
normal text foreground
For backward compatibility, the VT340 provides an alternative text
rendition mapping mode selectable from Set-Up.
VT340 Alternative Text Rendition Mapping
Color Entry
o
8
15
7
normal text background
reverse graphic rendition (SGR 7)
bold
graphic rendition (SGR 1)
normal text foreground
When alternative text rendition mapping is not selected, the
reverse attribute is rendered by exchanging the text foreground
and background colors.
A conforming device may provide an alternative text rendition
mapping mode selectable in Set-Up, but this is not part of the
Color Text Extension. The factory default behavior should be to
treat bold and reverse graphic renditions independently of color
selection (not mandatory) .
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-113
29-Jun-1990
Select Text/Graphics Look-Up Table
DECSTGLT
Levels:
3 (Documented Exception)
Purpose:
To select color look-up table used and the mapping
of text renditions to look-up table entries.
Format:
CSI
9/11
Ps
3/?
Ps
Look-Up Table
o
monochrome look-up table (default)
color look-up table,
standard text rendition mapping
color look-up table,
alternative text rendition mapping
1
2
)
{
2/9
7/11
Description: DECSTGLT permits host selection of the video color
look-up table used in the device, and the mapping of text
renditions to look-up table entries. This control function
assumes the existence of two color look-up tables: monochrome and
color. When a color look-up table is selected, two text rendition
mappings can be defined, called "standard" and "alternative". The
"standard" mapping permits the reverse video rendition to use a
different color look-up table entry for the background of
displayed text. The "alternative" mapping restricts text
rendition mapping to a single background entry, and one or two
foreground entries (two if the bold graphic rendition is effected
through increased intensity).
In other words, the alternative
mapping supports the use of bold and reverse graphic renditions to
select text foreground colors.
This control function is not intended to supplant the Color Text
Extension, but instead provide a means ot backward compatibility
to earlier video devices which provided several different text
rendition mappings based on different monitor configurations.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.7
Page 5-114
29-Jun-1990
AUDIBLE INDICATOR
A conforming device shall provide a warning "bell", or some
similar audible indicator suitable to signal the operator's
attention.
It may be possible to change the volume of the bell
sound, or disable it entirely, as a local Setup function.
WARNING BELL
BEL
Levels:
1-4
Purpose:
Rings the terminal bell.
Format:
BEL
0/7
Description:
The BEL control causes the terminal to emit an
audible tone of brief duration.
Notes:
1.
It may be possible to change the volume of the bell
sound, or disable it entirely, as a local Setup function.
State Affected: none
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.8
Page 5-115
29-Jun-1990
GRAPHIC CHARACTER SETS
The terminal shall maintain a repertory of available character
sets which may be used to interpret received data characters to be
displayed. The character sets must be selectable on a per
character basis, and are mutually exclusive (that is, there can be
only one character set value for each character position in the
Logical Display). Refer to the Code Extension Chapter of this
standard (DEC STD 70-3) for more information on designating and
invoking character sets, G-sets, and the structure of the in-use
table.
5.8.1
Character Set Repertoire
The table below shows the graphic character sets required at each
Conformance Level, and those available as Extensions.
Character Set{s)
Level at which required,
or availabe as Extension
U.S. ASCII
DEC Line Drawing
DEC Supplemental Graphic
ISO Latin-1 Supplemental
UPSS
UK set (United Kingdom)
NRCS
JIS ROMAN, JIS KATAKANA
DRCS
DEC Technical
1-4
1-4
2-4
2x,
2x,
1x
lx,
2x,
2x,
3x,
3-4
3-4
2x, 3x, 4x
3x, 4x
3x, 4x
4x
Notes:
1.
ISO Latin-1 Supplemental is available at Level 2 as part
of the 8-bit Interface Architecture Extension.
2.
UPSS (User Preference Supplemental Set) is not actually a
character set in itself, but a pointer to one of the
supplemental sets (usually DEC Supplemental or ISO
Latin-1 Supplemental). UPSS is available at Level 2 as
part of the 8-bit Interface Architecture Extension.
3.
The UK set is an optional extension to Levell which if
present, may be selected in Set-Up to replace ASCII
(ASCII and UK cannot be designated simultaneously). This
extension was implemented on the VT100, but has since
been replaced by the NRCS Extension.
4.
NRCS (National Replacement Character Set) is an extension
which provides twelve 7-bit NRC sets, one of which may be
selected under local user control (Set-Up) to replace
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-116
29-Jun-1990
U.s. ASCII as the default set. See DECNRCM. Depending
on the implementation, only one NRC set corresponding to
the keyboard dialect may be selectable at a time.
5.
JIS ROMAN and JIS KATAKANA are part of the Katakana
Extension.
-
6.
DRCS (Dynamically Redefinable Character Set) is an
extension which allows a soft character set to be
downloaded from the host and assigned a designating
sequence possibly replacing an existing character set.
See Chapter 10 of this standard (DEC STD 70-10), DRCS
Extension.
The character sets themselves are described in DEC STD 169 Digital
Standard Coded graphic Character Sets for Hardware and Software.
5.8.2
Character Set Selection
Character sets are identified to the terminal using designating
escape sequences which must be registered in DEC Standard 138.
Each sequence consists of zero, one, or two intermediate
characters in the range 2/0 through 2/15, followed by a final
character in the range 3/0 through 7/15, the combination of which
uniquely identifies the character set to be designated.
(Note:
the designating sequence is preceded by the Escape character
(1/11) and a single intermediate value 2/8, 2/9, 2/10, or 2/11
indicating which of the four G-sets the specified character set is
to be designated into. For a complete description of the
designating and invoking process, see the section "Code Extension
Layer", DEC STD 70-3.)
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-117
29-Jun-1990
SCS
DESIGNATE CHARACTER SET
Levels:
1-4
Purpose:
Designate the graphic character sets.
Format:
ESC
The G-Set designators are:
94 character sets
GO
(
2/8
Gl
)
2/9
2/10
G2
*
G3
+
2/11
96 character sets
Gl
2/13
G2
2/14
2/15
G3
/
The Character set designators are:
ASCII G
LINE DRAWING G
DEC SUPPLEMENTAL G
ISO-LATINI SUPPLEMENTAL G
UPSS G
DRCS-G
TCS G
JIS-Roman
JIS Katakana
NRCS
British
Dutch
Finnish
French
French Canadian
German
Italian
Norwegian/Danish
Portuguese
Spanish
Swedish
Swiss
B
0
%5
A
<
I I F
>
J
I
A
4
5 or C
R
4/2
3/0
2/5 3/5
4/1
3/12
2/? 2/? ?/?
4/10
4/9
(discontinued in L3)
Q
K
Y
E or 6
%6
z
7 or H
=
For example,
ESC ( B
ESC ) 0
ESC * <
designates ASCII G to GO
designates Line Drawing to Gl
designates the UPSS to G2
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-118
29-Jun-1990
Description:
The character set designating escape sequences
provide the means of selecting the GO, G1, G2, and G3 character
sets, which can be invoked into the left (GL) and right (GR) sides
of the In Use Table.
(For a complete description of the G-sets
and the In Use Table, see the section "Code Extension Layer".)
Notes:
1.
In Levell operation character sets can only be
designated into GO and G1, with G2 and G3 containing the
ASCII character set by default.
2.
Conforming software will not change the default
designations of the GO and G2 character sets. The G1 and
G3 sets will be used when it is desired to designate
alternate character sets. Furthermore, conforming
software will not designate ASCII G to either G2 or G3,
and will not designate Supplementa1_G to either GO or G1.
3.
Designating a character set which is invoked into the In
Use Table at the time the control is executed causes the
In Use Table to be changed to reflect the change to the
designated set.
4.
As a Levell extension, the UK (United Kingdom) Character
Set may be provided, and designated with the sequence ESC
I A (1/11 I 4/1).
If this extension is supported, it may
also be possible to locally select the UK set to replace
ASCII as the default 7-bit set.
In this case, the UK set
will be used in all instances in which ASCII is employed
throughout the Video Systems Reference Manual when the
terminal is in Levell operation.
5.
On traditional video terminals with the NRCS extension,
it is permissable to only recognize the one NRC set
corresponding to the keyboard dialect at a time.
Workstation terminal emulators may extend the character
set table to recognize all NRC sets regardless of the
current keyboard dialect (not mandatory) .
State Affected:
designated graphic sets[4]
in use table
-
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-119
29-Jun-1990
Algorithm:
/***************
**
*
*
*
*
Initialize the character set table
This procedure should be called on power-up or
reset to initialize the character set table
with the appropriate designating sequences.
**************/
void intialize character_set_table()
{
char set table[TABLE ASCII] .name = ASCII G;
char-set-table[TABLE-ASCII] .first intermediate = 0;
char-set-table[TABLE-ASCII] . second intermediate = 0;
char=set table[TABLE ASCII] . final ~ 'B';
char set table[TABLE LINE DRAWING]
char-set-table[TABLE-LINE-DRAWING]
char-set-table[TABLE-LINE-DRAWING]
char=set table[TABLE LINE DRAWING]
. name = LINE DRAWING G;
.first intermediate ~ 0;
. second intermediate = 0;
.final ~ '0';
if (conformance level >= LEVEL 2)
{
char set table[TABLE DEC SUPP] .name = DEC SUPPLEMENTAL G;
char-set-table[TABLE-DEC-SUPP] .first intermediate = '%';
char-set-table[TABLE-DEC-SUPP] . second intermediate = 0;
char=set table[TABLE DEC=SUPP] . final ~ '5';
if (level 2 extensions[DRCS EXT]==TRUE)
{-char set table[TABLE DRCS] .name = DRCS G;
char-set-table[TABLE-DRCS] .first intermediate = 0;
char-set-table[TABLE-DRCS] . second intermediate = 0;
char-set-table[TABLE-DRCS] .final ~ 0;
}
if (level 2 extensions[NRCS EXT]==TRUE)
{-/*
This entry is initialized to correspond
with the keyboard dialect whenever it
is changed in Set-Up.
*/
char set table[TABLE NRCS] .name = NRCS G;
char-set-table[TABLE-NRCS] .first intermediate = 0;
char-set-table[TABLE-NRCS] . second intermediate = 0;
char-set-table[TABLE-NRCS] . final ~ 0;
}
}
if «conformance level >= LEVEL 3) I I
(level_2_extensions[EIGHT_BIT_IA]==TRUE»
{
char_set_table[TABLE_LATIN1] .name = ISO LATIN1_SUPPLEMENTAL_G;
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-120
29-Jun-1990
char set table[TABLE LATINI] .first intermediate = 0;
char-set-table[TABLE-LATINl] . second intermediate = 0;
char set table[TABLE LATINI] . final ~ 'A';
char set table[TABLE UPSS] .name = UPSS G;
char-set-table[TABLE-UPSS] . first intermediate = 0;
char-set-table[TABLE-UPSS] . second intermediate = 0;
char-set-table[TABLE-UPSS] . final ~ '<';
}
if (level 3 extensions[TCS]==TRUE)
--
{
char set table[TABLE TCS]
char-set-table[TABLE-TCS]
char-set-table[TABLE-TCS]
char-set-table[TABLE-TCS]
}
-
-
-
. name = TCS G;
. first intermediate = 0;
. second intermediate = 0;
. final ~ '>';
}
void designate character set (parc, parv)
/* parc and parv contain the count and values
of the indermediate characters of the
designating sequence */
short int parc;
short int parv[MAX_NUM_INTERMEDIATES];
{
short int
short int
short int
boolean t
n;
gset_number;
set size;
compare designator();
/* function declaration */
/* ....... -:- ......... -:- ... */
/* find which set we're designating */
switch (parv[O])
{
case ')':
/* 2/8
gset number = 0;
set size = 94;
break;
case' (':
/* 2/9
gset number = 1;
set size = 94;
break;
case '*':
/* 2/10
gset number = 2;
set size = 94;
break;
case '+':
/* 2/11
gset number = 3;
set size = 94;
break;
designate 94 into GO */
designate 94 into Gl */
designate 94 into G2 */
designate 94 into G3 */
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-121
29-Jun-1990
case '-':
/* 2/13 designate 96 into G1 */
gset number = 1;
set size = 96;
break;
case'.':
/* 2/14 designate 96 into G2 */
gset number = 2;
set size = 96;
break;
case ' / ' :
/* 2/15 designate 96 into G3 */
gset number = 3;
set size = 96;
break;
}
/* look for the designator in the table */
/*
Note that because the DRCS designator is processed last,
it will replace an installed set if the designator is
identical.
*/
for (n=O; n= LEVEL 2)
-
{
in use table.gr =
designated_graphic_sets[in_use_table.invoked_gr];
}
/* perform hardware specific actions needed
to update the character set displayed */
}
/* end procedure designate_character_set */
/*
*
compare sequence designator to table entry n
*/
boolean t compare designator(parc, parv, n)
short-int parc;- /* number of sequence characters */
short int parv[MAX NUM INTERMEDIATES];
short int n;
/* char set table entry */
{
boolean t
status;
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-122
29-Jun-1990
status = TRUE;
if (char set table[n] . final != parv[parc-1])
status-= FALSE;
else
{
if (parc > 2)
{
if (char set table[n] .first intermediate != parv[l])
status-= FALSE;
else
{
if (parc >= 3)
if (char set table[n] . second intermediate != parv[2])
status-= FALSE;
}
}
}
return (status) ;
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-123
29-Jun-1990
ASSIGN USER-PREFERENCE SUPPLEMENTAL SET
DECAUPSS
Levels:
2x (a-bit Interface Architecture), 3-4
Purpose:
To assign a user preferred supplemental set
Format:
DCS
9/0
Ps
!
2/1
u
7/5
Dscs
ST
9/12
Description: This control string assigns a character set to be
the User-Preference Supplemental Set (UPSS).
The User-Preference
Supplemental Set serves the following functions:
1.
It acts as the default supplemental set for reception.
On soft terminal reset, the UPSS is designated as G2.
2.
It acts as the keyboard supplemental set, that is, it
determines which supplemental characters can be generated
from the keyboard (including valid compose sequences).
3.
It provides a level of indirection for application
software. The UPSS can be explicitly designated without
needing to know the actual character set assigned.
Currently DEC Supplemental and ISO Latin-1 supplemental may be
used as the UPSS.
The default User-Preference Supplemental Set is
determined through a Set-Up feature.
The value of Ps and Dscs
denote which set from the terminal's repertory of character sets
is to be the User-Preference Supplemental Set.
Ps selects between 94 and 96 character sets (Ps = 0 selets a 94
character set). Dscs is the intermediate and final characters of
the SCS escape sequence used to explicitly designated that
character set. For example a value of "% 5" for Dscs indicates
that the DEC Supplemental character set is the User-Preference
Supplemental set.
See the SCS command for more information on the
designating intermediate and final characters. Attempts to assign
an invalid supplemental set will be ignored.
Notes on DECAUPSS:
1.
The DRCS can be used as the UPSS by naming it as DEC
Supplemental or ISO Latin-1 supplemental.
2.
Assigning a new UPSS will immediately update the In-Use
table if the UPSS is currently designated and invoked.
3.
This sequence is sent from the terminal to the host in
response to a DECRQUPSS request.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-124
29-Jun-1990
Implementation Guideline
The valid combinations for the VT320 are:
Ps
Ps
=
0, Dscs
Dscs
= 1,
=%5
=A
DEC Supplemental
ISO Latin-l supplemental graphic
State Affected:
upss
/* defined in code extension layer */
Algorithm:
void assign_user-preference_set(parv, string)
short int parv[MAX NUM PARAMETERS];
char string [ ] ;
-{
if «conformance level >= LEVEL 3) I I
(level_2_extensions[EIGHT_BIT_IA]
==
TRUE»
{
/* update upss state in Code Extension Layer */
if «parv [0] = 0) && (strcmp (string, "%5") == 0»
{
/* size is 94 characters */
upss = DEC SUPPLEMENTAL G;
}
else if «parv[O]
-
=
1)
&&
(strcmp(string, "A") -- 0»
{
/* size is 96 characters */
upss = ISO LATINI SUPPLEMENTAL G;
}
-
-
-
/* update in use table */
if (in use table.gl == UPSS G)
{
; /* perform hardware dependent actions as needed */
.
}
== UPSS- G)
{
; /* perform hardware dependent actions as needed */
if (in use table.gr
}
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-125
29-Jun-1990
DECRQUPSS
REQUEST USER-PREFERENCE SUPPLEMENTAL SET
Levels:
2x (a-bit Interface Architecture), 3-4
Purpose:
To request the user preferred supplemental set
Format:
&
CSI
9/11
2/6
u
7/5
Description: Upon receipt of this sequence, the terminal will
return a DECAUPSS sequence which specifies which coded character
set is assigned to be the User-Preference Supplemental Set.
State Affected:
none
Algorithm:
void request_user-preference_set()
{
if «conformance level >= LEVEL 3) I I
(level_2_extensions[EIGHT_BIT_IA] -- TRUE»
{
send char(Ox90, host port);
/* DCS */
if (upss = DEC SUPPLEMENTAL G)
{
-
-
send_int(O, host-port);
send_string("!u%5", host-port);
}
else if (upss
{
=
ISO LATIN1 SUPPLEMENTAL G)
-
-
-
send_int(l, host-port);
send_string("!uA", host-port);
}
send char(Ox9C, host-port);
}
}
Known Deviations:
None
/* ST */
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-126
29-Jun-1990
SET/RESET CHARACTER SET MODE
Levels:
DECNRCM
lx, 2x, 3x, 4x (NRCS Extension)
Purpose: To select 8-bit Multinational Characters, or 7-bit NRCS
Characters for transmission (keyboard) and reception (display).
To set:
To reset:
CSI? 42 h
CSI? 42 I
(7-bit NRCS Characters)
(8-bit Multinational Characters)
Description: This parameter is applicaple to the Set Mode and
Reset Mode control sequence. When 8-bit Multinational Characters
is selected (factory default), the terminal uses ASCII in GL and
either DEC Supplemental or ISO Latin-1 Supplemental in GR
(depending on the UPSS). When 7-bit NRCS Characters is selected,
a 7-bit National Replacement Character set is used for
transmission and reception in GL (GR is not used). The NRCS used
is determined by the Keyboard Dialect chosen in Set-Up (see
"Keyboard Processing", DEC STD 70-6) .
Notes on DECNRCM:
1.
Changing this mode
the designated and
default state (the
NRCS Characters is
U.S. ASCII in the
has the side effect of re-initializing
invoked character sets to their
state at power-on or reset).
If 7-bit
selected, a 7-bit NRC Set may replace
default designations.
2.
8-bit Characters are temporarily disabled when in Levell
(VT100 mode), or a 7-bit host line environment is
selected. The DECNRCM sequence will still be recognized,
but in the case of the reset sequence, 8-bit characters
will remain disabled until the restrictive conditions are
removed.
3.
This sequence is ignored when the North American or Dutch
Keyboard Dialect is selected. These keyboard dialects
use U.S. ASCII as their 7-bit set, so there is no need
to disable the multinational set (which includes U.S.
ASCII as its left half) to access 7-bit NRC characters.
U.S. ASCII may be considered the NRC set for North
America.
State Affected:
character set mode
r character set mode
- /* used to keep track of character set mode
when a restrictive condition (7-bit Host Line,
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-127
29-Jun-1990
or VT100 mode) is in effect */
in use table
designated_graphic_sets[4]
Algorithm:
void set character_set_mode()
{
if (level 1 extensions[NRCS EXT]==TRUE)
- -
{
-
character set mode = SEVEN BIT NATIONAL;
/* keep track-of mode if there-are restrictions in effect */
r character set mode = SEVEN BIT NATIONAL;
if (keyboard usage mode == TYPEWRITER)
--
{
in use table.gl = nrcs list [keyboard dialect];
in-use-table.gr = nrcs-list[keyboard-dialect];
in-use-table.invoked gl = GO;
in-use-table.invoked-gr = G2;
designated graphic sets[O] = nrcs list[keyboard dialect];
des ignated-graphic-set s [1] = nrcs-list[keyboard-dialect];
des ignated-graphic-set s [2] = nrcs-list[keyboard-dialect];
designated-graphic-sets[3] = nrcs-list[keyboard-dialect];
-
}
else
-
-
-
/* keyboard usage mode is Data Processing */
{
in use table.gl = ASCII_G;
in-use-table.gr = ASCII G;
in-use-table.invoked gl-= GO;
in-use-table.invoked-gr = G2;
designated graphic sets[O] = ASCII G;
designated-graphic-sets[l] = ASCII-G;
designated-graphic-sets[2] = ASCII-G;
des ignated-graphic-set s [3] = ASCII-G;
}
}
}
void reset_character_set_mode()
{
if (level 1 extensions[NRCS EXT]==TRUE)
- -
{
-
/* keep track of mode if there are restrictions in effect */
r character set mode = EIGHT BIT MULTINATIONAL;
/* ignore if 7-bit host line-or VT100 mode */
if «host-port_environment != SEVEN_BIT) &&
(conformance_level != LEVEL_I»
{
character set mode = EIGHT BIT MULTINATIONAL;
in use table.gl = ASCII G;in use table.gr = UPSS_G;
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-128
29-Jun-1990
in use table. invoked gl = GO;
in-use-table.invoked-gr = G2;
designated graphic sets[O] = ASCII G;
designated-graphic-sets[l] = ASCII-G;
designated-graphic-sets[2] = UPSS G;
designated-graphic-sets[3] = UPSS G;
-
}
-
}
}
Known Deviations:
5.9
None
SUMMARY OF CONTROL CHARACTER PROCESSING
This subsection provides a summary of control character processing
as a convenience to the reader, and to include control characters
which are not described in detail in their corresponding
functional sUbsection of this chapter (DEC STD 70-5) .
5.9.1
CO Control Characters
CO control characters are those with
7/15 (0 - 31, and 127 decimal). The
the control characters recognized by
other CO control characters cause no
values of %
to 1/15, and
following is a description of
conforming devices. All
action to be taken.
Control Col/Row Action Taken
NUL
%
Ignored on input (not
stored in input buffer) .
May be used as a time fill
character. Note: When
Control Representation Mode
is Set, NUL is not ignored,
but displayed, and may not
be used as a time fill
character.
ENQ
0/5
Transmit answerback message.
BEL
0/7
Causes bell tone to sound
from keyboard.
BS
0/8
Causes the cursor to move
to the left one character
position, unless it is at
the left margin. Does not
cause wrap.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-129
29.,..Jun-1990
HT
0/9
Causes the cursor to move
to the next tab stop, or
the right margin if no
further tab stops. Does
not cause wrap.
LF
0/10
Causes a line feed or a new
line operation depending on
the setting of Line Feed/New
Line Mode (LNM). LF causes
a line to be printed if in
auto print mode.
VT
0/11
Interpreted as a LF.
FF
0/12
Interpreted as a LF.
CR
0/13
Cursor goes to left margin.
If cursor is already left of the left
margin, cursor goes to column 1.
SO
(LSI)
0/14
Invoke G1 character set into GL.
SI
(LSO)
0/15
Invoke GO character set into GL.
XON
1/1
Causes terminal to resume
transmitting, if XOFF
handling is enabled.
XOFF
1/3
CAN
1/8
Causes terminal to stop
transmitting all codes
except XOFF and XON, if
XOFF handling is enabled.
If received during an escape or
control sequence, the sequence
is immediately terminated and
not executed. No character is
displayed.
SUB
1/10
If received during an escape or
control sequence, the sequence
is immediately terminated and
not executed. The error
character (reverse question mark)
is displayed.
ESC
1/11
Introduces an escape sequence.
Terminates any escape, control sequence,
or control string in progress.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
DEL
5.9.2
7/15
Page 5-130
29-Jun-1990
Ignored on input (not
stored in input buffer) .
May not be used as a time fill
character.
C1 Control Characters
C1 control characters are those with positions of 8/0 to 9/15.
The following is a description of the C1 control characters which
are recognized by conforming devices. All other C1 control
characters cause no action to be taken.
Note C1 controls can be represented by ESC Fe sequences in 7-bits.
See "Code Extension Layer" (DEC STD 70-3).
Control Col/Row Action Taken
IND
8/4
INDEX - Causes the active
position to move downward
one line without changing
the horizontal position.
If the active position is
at the bottom margin, a
scroll up is performed.
NEL
8/5
NEXT LINE - Causes the
active position to move
to the first position on
the next line downward.
If the active position is
at the bottom margin, a
scroll action is performed.
(a CR LF is executed) .
HTS
8/8
HORIZONTAL TABULATION SET
Sets one horizontal
tabulation stop at the
column of the active
position (See also, TBC).
RI
8/13
REVERSE INDEX - Moves the
active position to the
same horizontal position
on the preceding line.
If the active position is
at the top margin, a
scroll down is performed.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
SS2
8/14
SINGLE SHIFT 2 - Causes
the G2 set to be invoked
for the next single
displayed character.
SS3
8/15
SINGLE SHIFT 3 - Causes
the G3 set to be invoked
for the next single
displayable character.
DCS
9/0
DEVICE CONTROL STRING Introduces a Device
Control String.
SOS
9/8
START OF STRING This control is ignored.
Page 5-131
29-Jun-1990
DECID
9/10
(reserved)
DEC PRIVATE IDENTIFICATION Causes the same response as
the ANSI device attributes
(see DA).
This sequence is
not recognized a Level 3 or
above. Conforming software
shall use DA. Note:
If
printer controller mode is
enabled, the sequence will be
sent to the printer.
CSI
9/11
CONTROL SEQUENCE INTRODUCER Introduces a control sequence.
ST
9/12
STRING TERMINATOR Terminates Control
Strings introduced by
DCS, APC, OSC, and PM.
OSC
9/13
Operating System Command A control string.
PM
9/14
Privacy Message A control string.
.APC
9/15
Application Program Command A control string.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-132
29-Jun-1990
SUBSTITUTE
SUB
Levels:
1-4
Purpose:
Place a reversed question mark symbol in the display.
Format:
SUB
1/10
Description:
The SUB control is used to
of characters in the data stream for which
representation.
This control is processed
question mark in the display at the Active
indicate the presence
there is no graphic
by placing a reversed
Position.
Notes:
1.
The character to be displayed in cases where the reversed
question mark cannot be used is a "half-tone blotch",
which is rendered by filling the entire character cell in
the display with a cross-hatched pattern.
2.
Receipt of the Substitute character within an escape or
control sequence causes the sequence in progress to be
aborted and the Substitute control function to be
executed instead (that is, the reversed question mark
symbol will be displayed) .
(See the section "Code
Extension Layer" for a complete description of the
handling of control characters within escape and control
sequences. )
State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
active-position-Algorithm:
void substitute()
{
short int sub = Ox1A;
/* .......... */
/* place a reversed question mark in the display */
insert or replace character(&sub);
}
-
-
-
Known Deviations:
Most existing terminals (VT100, VT101, VT102, VT125, VT131, VT132)
display the blotch character instead of the reversed question
mark.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.10
Page 5-133
29-Jun-1990
MODES STATES (AND MODE DESCRIPTIONS)
A conforming device shall provide certain programmable state
capabilities or modes as described below.
It should be noted that
some modes are identified as User Preference Features (see the
section "Concepts and Conformance Criteria" for a list of the
modes which are classified as User Preference Features).
The
state of these features should not be changed by conforming
software, except in response to an explicit user request (for
example, a request to change the screen width) .
5.10.1
SM/RM - Set Mode, Reset Mode Sequence
The Set Mode/Reset Mode control sequence is used to control the
state of various settable modes in the terminal.
Set Format:
CSI
9/11
PS ... Ps
PS ... Ps
I
6/12
Reset Format:
CSI
9/11
PS ... Ps
PS ... Ps
h
6/8
Sets/Resets one or more modes of the terminal as specified by each
selective parameter in the parameter string. Each mode to be
set/reset is specified by a separate parameter.
Note that ANSI specified mode parameters and DEC private mode
parameters may not be mixed within the same SM or RM sequence.
5.10.1.1
Mode
Parameter
ANSI Specified Modes: Mnemonic
Mode Function
KAM
IRM
SRM
LNM
Error (ignored)
Keyboard Action Mode
Insert Replacement Mode
Send-Receive Mode
Line Feed New Line Mode
o
2
4
12
20
5.10.1.2
DEC Private Modes: -
If the first character in the parameter string is 3/15 (?), the
parameters are interpreted as DEC private parameters, according to
the following table.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Mode
Parameter
Mnemonic
Mode Function
DECCKM
DECCOLM
DECSCLM
DECSCNM.
DECOM
DECAWM
DECARM
DECPFF
DECPEX
DECCEM
DECTEK
DECNRCM
DECVCCM
DECPCCM
DECKBUM
DECLRMM
DECXRLM
Error (ignored)
Cursor Key Mode
Column Mode
Scrolling Mode
Screen Mode
Origin Mode
Autowrap Mode
Autorepeating Mode
Print Form Feed
Pr:nt Extent
Cursor Enable Mode
Tektronix 4010/4014 Mode
National Character set mode
Vertical Coupling
Page Coupling
Keyboard Usage Mode
Left Right Margin Mode
Transmit Rate Limiting
o
1
3
4
5
6
7
8
18
19
25
38
42
61
64
68
69
73
Page 5-134
29-Jun-1990
Any other parameter values are ignored.
5.10.1.3 Modes That Cannot Be Changed - The following modes which
are specified in the ANSI X3.64-1979 standard may be considered to
be permanently set, permanently reset, or not applicable, as
noted. Refer to that standard for further information concerning
these modes.
Mode
Mnemonic
EBM
FEAM
FETM
HEM
MATM
PUM
SATM
SRTM
TSM
VEM
5.10.2
Mode Function
State
Editing Boundary Mode
Format Effector Action Mode
Format Effector Transfer Mode
Horizontal Editing Mode
Multiple Area Transfer Mode
Positioning Unit Mode
Selected Area Transfer Mode
Status Reporting Transfer Mode
Tabulation Stop Mode
Vertical Editing Mode
Reset
Reset
NA
Reset
NA
Reset
NA
Reset
Reset
Reset
Mode Descriptions
The detailed descriptions for many of the modes that use the SM/RM
sequences are included in other parts of this standard (DEC STD
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-135
29-Jun-1990
70) to keep related functions together.
SET/RESET SEND RECEIVE MODE
SRM
Levels:
1-4
Purpose:
To turn the local echo feature ON or OFF
Set Format:
Reset Format:
CSI 12 h
CSI 12 I
(local echo off, default)
(local echo on)
Description: SRM is a parameter applicable to the Set Mode and
Reset Mode control sequences. The reset state causes local echo
to be ON. The set state causes local echo to be OFF.
NOTE
Local echo is temporarily disabled when either or
both of the following conditions are true:
The terminal is in printer controller mode
The terminal is in local mode
State Affected:
send receive mode
/* See Keyboard Processing */
r send receive mode
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-136
29-Jun-1990
Algorithm:
void set send receive_mode()
{
send receive mode = ECHO OFF;
/* remember state in case there are restrictions */
r send receive mode = ECHO OFF;
-
}
void reset send receive_mode()
{
/* remember state in case there are restrictions */
r send receive mode = ECHO ON;
if «printer controller mode != PRINTER_CONTROLLER_ON) &&
(line local mode !=-LOCAL»
send receive mode = ECHO_ON;
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.11
Page 5-137
29-Jun-1990
EDITING FUNCTIONS
This subsection describes the following functions used to edit
data, or control editing in the Logical Display.
IRM - Insert/Replacement Mode
ICH - Insert Character
DCH - Delete Character
IL - Insert Line
DL - Delete Line
DECIC - Insert Column
DECDC - Delete Column
ECH - Erase Character
EL - Erase in Line
DECSEL - Selective Erase in Line
ED - Erase in Display
DEC SED - Selective Erase in Display
Character Attributes (selective erase)
DECSCA - Select Character Attribute
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
SET/RESET INSERT/REPLACEMENT MODE
Levels:
Page 5-138
29-Jun-1990
IRM
lX, 2-4
Purpose: Change the state of Insert/Replacement Mode between
Replace (reset) and Insert (set) graphic characters.
Set Format:
Reset Format:
CSI 4 h
CSI 4 1
Description: A conforming device shall provide the ability to
select whether characters entered into character positions which
already contain data shall overwrite the character at that
position [reset state = replace], or shall be inserted by causing
all data on the line starting at the Active Position to be shifted
one column to the right to accommodate the new character [set
state = insert].
Notes:
1.
The IRM controls are part of the Levell Editing
Extension. This extension is required in all new Levell
implementations. They are required functions in Level 2.
State Affected:
Algorithm:
void set insert replacement mode()
{
-
-
-
insert replacement mode
}
-
=
INSERT;
void reset_insert_replacement_mode()
{
insert replacement mode
}
Known Deviations:
None
=
REPLACE;
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-139
29-Jun-1990
INSERT OR REPLACE GRAPHIC CHARACTER
Levels:
1-4
Purpose: To place a graphic character in the display at the
Active Position.
Format:
implied on receipt of graphic character data
Description:
This procedure is called on receipt of graphic
character data to place the data in the appropriate position in
the display structure. The character code, as well as the values
of the Current Rendition, Current Attribute, and the character set
indicated by the In Use Table (left side if code <= 7/14,
otherwise right side) are stored in the display list.
The Active Position is advanced by one column each time this
operation is performed until it reaches the Right Margin, or the
last column of the Active Line.
If the Active Position is within
the Scroll Area, it will advance to the Right Margin.
If the
Active Position is outside the Scroll Area, it will advance to the
last column of the Active Line.
If Auto Wrap mode is off, the Active Position will not advance
beyond the Right Margin or last column of the Active Line.
Additional graphic characters received will overwrite this
position.
If Auto Wrap Mode is on and the Active Position is within the
vertical Scroll Margins, the Active Position will advance from the
Right Margin or last column of the Active Line, to the Left Margin
of the next line (causing the display to scroll if necessary) when
a graphic character is received and the Last Column Flag is set
(see Auto Wrap Mode, DEC STD 70-D for details) .
If Auto Wrap Mode is on and the Active position is outside the
Vertical Scroll Margins, the Active Position will advance from the
last column of the Active Line, to the first column of the next
line when a graphic character is received and the Last Column Flag
is set (see Auto Wrap Mode, DEC STD 70-D for details). No
scrolling will occur.
Notes:
1.
This operation is affected by the setting of
Insert/Replacement Mode. When this mode is in the reset
state (Replace) the new data will overwrite existing data
at the Active Position. When this mode is in the set
state (Insert) the contents of the active line will be
shifted right one column starting at the Active Position
to accommodate the new data. Data shifted past the Right
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-140
29-Jun-1990
Margin within the Scroll Area, or the last column of the
Active Line outside the Scroll Area is lost.
State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
active-position-Algorithm:
void insert or replace character(parv)
short int- parv [] ;
{
column t X;
short int line;
/* actual line in logical display */
short int margin;
/* effective right boundary */
line = (active-position.page * lines~er-page) +
active-position.line;
if (insert replacement mode == INSERT)
{
/* determine right boundary for shifting characters */
if ( (active-position.column <= right_margin) &&
(active-position.line >= bottom_margin) &&
(active-position.line <= top_margin)
&&
(right margin < end of line(line»
margin = right margin;- else
margin = end of line(line);
/* make room for character to be inserted */
for ( x=margin;
X > active-position.column;
x-- )
strncpy( display [line] [x], display [line] [x-1],
sizeof(character_t) );
}
/* put code in the display, strip 8th bit */
display [line] [active-position.column] . code = parv[O] & Ox7F;
display [line] [active-position.column] . rendition =
current rendition;
display[line] [active-position.column] . attribute =
current_attribute;
/* write the character set */
if (single shift == NO SINGLE SHIFT)
{
-
--
if (parv(O] <= 126)
display [line] [active-position.column] . character_set =
in use table.gl;
else -
V8RM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-141
29-Jun-1990
display [line] [active position. column] . character set
in_use_table.gr; -
=
}
else if (single shift == 882)
display [line][active-position. column] . character_set
designated graphic sets[2];
else if (single shift ~= 883)
display[line][active position. column] . character set
designated_graphic=sets[3];
-
=
=
/* advance the active position after entering character */
if (active position.column < margin)
active position. column += 1;
else /*-active position is at effective margin *1
if (auto wrap mode = WRAP ON)
-
{
-
-
if (last column flag)
-
{
-
carriage return();
line feed () ;
last-column flag = FAL8E;
}
-
-
else
last_column_flag
=
TRUE;
}
}
/* end insert_or_replace_character() */
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
INSERT CHARACTER
Page 5-142
29-Jun-1990
ICH
Levels:
2-4
Purpose:
Insert empty characters at the Active Position.
Format:
CSI
9/11
Pn
Pn
@
4/0
default Pn: 1
Description:
The ICH control causes empty characters to be
inserted at the Active Position. A parameter value of zero or one
causes a single empty character to be inserted. A parameter value
of n causes n empty characters to be inserted. Data on the Active
Line from the Active Column to the Right Margin is shifted forward
as in character insertion. Characters shifted beyond the Right
Margin are lost.
Notes:
1.
The extent of the display affected by execution of this
control is limited to the Active Line within the left and
right margins. Data which is shifted beyond the Right
Margin is lost.
2.
If the active position is outside the left or right
margin, this control is ignored.
3.
The Active Position is not affected by execution of this
control.
4.
Execution of this control is not affected by the setting
of Insert/Replacement Mode.
State Affected:
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-143
29-Jun-1990
Algorithm:
void insert character(parv)
int parv[MAX_NDM_PARAMETERS];
{
column t X;
short int line;
short int margin;
short int n;
/* actual line in logical display */
/* effective right boundary */
/ * ....................... * /
/* ignore if we're outside the scrolling area */
if
(active-position.line >= bottom~argin) &&
(active-position.line <= top_margin)
&&
(active-position.column >= left_margin) &&
(active_position. column <= right_margin)
)
{
line = (active-position.page * lines-per-page) +
.
active-position.line;
/* determine right boundary for shifting characters */
if (right margin < end of line(line»
margin ~ right margin; else
margin = end_of_line(line);
if (parv[O] == 0) n = 1;
else n = parv[O];
if «active-position.column + n) > margin)
n = margin - active-position.column + 1;
/* make room for characters to be inserted */
for ( x=margin;
X > active-position.column + n;
x-- )
strncpy( display [line] [x], display [line] [x-n],
sizeof(character t) );
for (x=l; x<=n; x++)
{
display [line] [active-position.column+(x-1)] . code =
EMPTY_CHARACTER;
}
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05.
Digital Internal Use Only
For Review Only
_
Page 5-144
29-Jun-1990
DCH
DELETE CHARACTER
Levels:
lX, 2-4
Purpose:
Delete characters at the Active Position.
Format:
CSI
9/11
Pn
Pn
P
5/0
default Pn: 1
Description:
The DCH control causes characters to be deleted at
the Active Position. A parameter value of zero or one causes a
single character to be deleted. A parameter value of n causes n
characters to be deleted. Data on the Active Line between the
Active Column and Right Margin is shifted left to close up the
deleted character positions, and empty characters are inserted at
the Right Margin to accommodate the shift.
Notes:
1.
The DCH control is part of the Levell Editing Extension.
This extension is required in all new Level 1
implementations. It is a required function in Level 2.
2.
The extent of the display affected by execution of this
control is limited to the Active Line within the left and
right margins.
3.
If the Active Position is outside the left or right
margins, this control is ignored.
4.
The Active Position is not affected by execution of this
control.
5.
Execution of this control is not affected by the setting
of Insert/Replacement Mode.
State Affected:
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-145
29-Jun-1990
Algorithm:
void delete character(parv)
int parv[MAX_NUM_PARAMETERS];
{
column t X;
short int line;
short int margin;
short int n;
/* actual line in logical display */
/* effective right boundary */
/ * ....................... * /
/* ignore if we're outside left or right margin */
if ( (active position. column >= left margin) &&
(active-position.column <= right_margin)
)
{
line = (active-position.page * lines_per-page) +
active position. line;
/* determine right boundary for shifting characters */
if (right margin < end of line(line»
margin ~ right margin; else
margin = end_of_line(line);
if (parv[O] == 0) n = 1;
else n = parv[O];
if ((active-position.column + n) > margin)
n = margin - active-position.column + 1;
/* make delete characters */
for ( x=active-position.column;
X <= margin-n;
x++ )
strncpy( display [line] [x], display [line] [x+n] ,
sizeof(character t) );
for (x=l; x<=n; x++)
-
{
display [line] [margin-(x-1)] . code =
EMPTY_CHARACTER;
}
} /* end active position within the left and right margins */
} /* end delete_character() */
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
INSERT LINE
Page 5-146
29-Jun-1990
IL
Levels:
lx, 2-4
Purpose:
Insert lines of empty characters at the Active Position.
Format:
CSI
9/11
Pn
Pn
L
4/12
default Pn: 1
Description:
The IL control causes lines of empty characters to
be inserted at the Active Position. A parameter value of zero or
one causes a single line to be inserted. A parameter value of n
causes n lines to be inserted. Data in the display is scrolled
downward to the Bottom Margin from the active line to accommodate
the insertion. Only that portion of the display between the top,
bottom, left, and right margins is affected.
IL is ignored if the
Active Position is outside the Scroll Area.
Notes:
1.
The IL control is part of the Levell Editing Extension.
This extension is required in all new Level 1
implementations.
It is a required function in Level 2.
2.
The Active Position is set to the Left Margin in the
active line after execution of this control. The active
line does not change.
State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line rendition[MAX NUM LINES]
active-position
-
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-147
29-Jun-1990
Algorithm:
void insert line(parv)
short int-parv[MAX_NUM_PARAMETERS];
{
short int n;
/ * ...................... * /
/* ignore if we're outside the scrolling area */
if ( (active-position.line >= bottom_margin) &&
(active-position.line <= top margin)
&&
(active-position.column >= left margin) &&
(active-position.column <= right_margin)
)
{
if (parv[O] == 0) n = 1;
else n = parv[O];
if «active position.line + n) > bottom margin)
n = (bottom margin - active position. line) + 1;
scroll_down (active-position.line, n);
active-position.column = left_margin;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
DELETE LINE
DL
Levels:
lx, 2-4
Purpose:
Delete lines at the Active Position.
Format:
Page 5-148
29-Jun-1990
CSI
9/11
Pn
Pn
M
4/13
default Pn: 1
Description:
The DL control causes lines of characters to be
deleted at the Active Position. A parameter value of zero or one
causes a single line to be deleted. A parameter value of n causes
n lines to be deleted. Data in the display is scrolled upward
from the Bottom Margin to the active line to accommodate the
deletion. Only that portion of the display between the top,
bottom, left, and right margins is affected. DL is ignored if the
active position is outside the scroll area.
Notes:
1.
The DL control is part of the Levell Editing Extension.
This extension is required in all new Level 1
implementations.
It is a required function in Level 2.
2.
The Active Position is set to the Left Margin in the
active line after execution of this control. The active
line does not change.
State Affected:
display[MAX NOM LINES] [MAX NOM COLUMNS]
line rendition[MAX NOM LINES] active-position
-
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-149
29-Jun-1990
Algorithm:
void delete line(parv)
short int-parv[MAX_NUM_PARAMETERS];
{
short int n;
/ * ...................... * /
/* ignore if we're outside the scrolling area */
if ( (active-position.line >= bottom margin) &&
(active-position.line <= top margin)
&&
(active-position.column >= left margin) &&
(active-position.column <= right_margin)
)
{
if (parv[O] == 0) n = 1;
else n = parv[O];
if «active-position.line + n) > bottom_margin)
n = (bottom_margin - active-position.line) + 1;
scroll_up (active-position.line, n);
active position. column = left margin;
}
-
-
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-150
29-Jun-1990
DECIC
INSERT COLUMN
Level:
4x (Horizontal Scrolling)
Purpose:
Insert columns of empty characters at the Active
Position.
Format:
CSI
9/11
Pn
Pn
}
2/7
default Pn: 1
7/13
Description: The DECIC control causes Pn columns to be inserted
at the active column position. The contents of the display are
shifted to the right from the active column to the right margin.
The inserted columns are set to blank with normal rendition.
Only
that portion of the display between the top, bottom, left, and
right margins is affected. DECIC is ignored if the active
position is outside the Scroll Area.
State Affected:
display[MAX_NUM LINES] [MAX NUM COLUMNS]
Algorithm:
/* routine insert_column(parv) to be supplied */
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-151
29-Jun-1990
DECDC
DELETE COLUMN
Level:
4x (Horizontal Scrolling)
Purpose:
Format:
Delete columns at the Active Position
CSI
9/11
Pn
Pn
default Pn: 1
2/7
7/14
Description: The DECDC control causes Pn columns to be deleted at
the active column position. The contents of the display are
shifted to the left from the right margin to the active column.
Columns containing blank characters with normal rendition are
shifted into the display from the right margin. Only that portion
of the display between the top, bottom, left, and right margins is
affected. DECDC is ignored if the active position is outside the
Scroll Area.
State Affected:
display[MAX_NUM LINES] [MAX NUM COLUMNS]
Algorithm:
/* routine delete_column(parv) to be supplied */
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-152
29-Jun-1990
ERASE CHARACTER
ECH
Levels:
2-4
Purpose:
Erase characters at the Active Position.
Format:
CSI
9/11
Pn
Pn
X
5/8
default Pn: 1
Description:
The ECH control causes the character at the Active
Position and the next n-l characters to be erased and their
attributes set to normal. A parameter value of zero causes a
single character to be erased. No reformatting of data on the
line occurs, and the Active Position does not move.
Notes:
1.
The extent of the display affected by execution of this
control is limited to the Active Line.
If a parameter
value is given which is greater than the distance from
the Active Position to the end of the Active Line, only
character positions up to the end of the Active Line will
be erased. This control is not affected by the margins.
2.
Execution of this control is not affected by the setting
of Insert/Replacement Mode.
State Affected:
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-153
29-Jun-1990
Algorithm:
void erase character(parv)
short int parv[MAX_NUM_PARAMETERS];
{
column t X;
short int line;
short int n;
/* actual line in logical display */
/ * ......... * /
line = active-position.page * lines_per-page +
active-position.line;
if (parv[O] == 0) n = 1;
else n = parv[O];
if «active position.line + n) > end of line(line»
n = (end of line(line) - active position.column) + 1;
for (x=active-position.column;
X <= active-position.column + (n-1);
x++)
{
display [line] [x] . code = EMPTY CHARACTER;
}
}
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-154
29-Jun-1990
EL
ERASE IN LINE
Levels:
1-4
Purpose:
Erase character positions within the Active Line.
Format:
CSI
9/11
Ps
Ps
K
4/11
default Ps: 0
Description:
The EL control causes a set of adjacent character
positions in the Active Line to be set to the empty state, that is
the empty character (imaged as SPACE), the empty rendition, and
the empty character attribute. The set of character positions
affected by this control is determined by the parameter value. An
omitted parameter or a value of zero (0) cause the control to
affect character positions from the Active Column to the end of
the Active Line (inclusive). A parameter value of one (1) causes
the control to affect character positions from the beginning of
the Active Line to the Active Column (inclusive). A parameter
value of two (2) causes the control to affect all character
positions in the Active Line (inclusive).
Notes:
1.
The line renditon is not affected by execution of this
control.
2.
The syntax of the EL control is identical to the
Selective Erase in Line (DECSEL) control, except that
DECSEL includes a private parameter specifier?
(3/15).
3.
This control is not affected by the margins.
State Affected:
display[MAX NUM LINES] [MAX NUM COLUMNS]
line_rendition[MAX~UM_LINES] -
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-155
29-Jun-1990
Algorithm:
/*
*
erase in line
both standard and selective erase
*
*/
void erase in line(parc, parv, private)
short int parc;
short int parv[MAX NUM PARAMETERS];
boolean t private;column t X;
short int line;
short int n;
/* actual line in logical display */
/ * ................ * /
if (private)
else
selective erase in_Iine(parc, parv);
{
line = active-position.page
active-position.line;
if (parc == 0) parc = 1;
for (n=O; n= 2)
{
if (parc == 0) parc = 1;
for (n=O; n= LEVEL 2) {
cursor save buffer.right = in use table.gr;
cursor-save-buffer.attribute.selective erase =
current attribute. selective_erase;
}
} /* end save cursor */
Known Deviations:
None
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
RESTORE CURSOR
Levels:
Page 5-189
29-Jun-1990
DECRC
1-4
Purpose: Restores the previously saved values of the Active
Position and other selective state information.
Format:
ESC
1/11
8
3/8
Description:
In Levell operation, the DECRC control provides a
means of restoring the values of the Active Position, the Current
Rendition, Origin Mode, the currently designated GO, G1, G2, and
G3 sets, and the currently invoked GL set.
In Level 2 or higher it also restores the currently invoked GR
set. The Current Attribute value is also saved if the Level 2
extension for Selectively Erasable Characters is supported.
These
values are the ones which were previously stored using the Save
Cursor (DECSC) control function.
Notes:
1.
The values of the specified state information (see above)
at the time this control is received by the terminal are
lost.
2.
The values stored in the Cursor Save Buffer are not
affected by execution of this control.
3.
If the restored cursor position lies outside of the
scrolling region, and the restored value of Origin Mode
is set, the Active position will be moved to the closest
position within the scrolling region.
That is, if the
restored cursor position is above the Top Margin, the
Active position will be set to the Top Margin, and if the
restored position is below the Bottom Margin, the Active
position will be set to the Bottom Margin.
In either
case, the Active Column will not change, but will remain
as the stored column value. For example: the Active
position is at line 5, column 5 when the cursor is saved,
and Origin Mode is set; the scrolling region is
subsequently changed to 10,15; when the cursor is
restored, the Active position will be moved to line 10,
column 5, to insure that it will lie inside the scrolling
region.
This reason for this recovery is to guarantee
that the Active Position will always be within the bounds
of the scrolling region, and will never have a negative
value.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-190
29-Jun-1990
State Affected:
active position
current rendition
origin mode
in use-table
designated graphic sets[4]
current attribute Algorithm:
void restore_cursor()
{
short int base;
/* first line(-l) of page */
if (cursor_save_buffer.position.page > number_of-pages)
active-position.page = number_of-pages ;
else active-position.page = cursor_save_buffer.position.page;
base = (active-position.page-1) * lines-per_page;
if (cursor save buffer.position.column >
end_of-line(active-position.line + base»
active_position.column = end_of_line(active-position.line +
base);
else
active position.column = cursor save buffer.position.column;
active_position. line = cursor_save_buffer.position.line;
current rendition.bold =
cursor save buffer.rendition.bold;
current rendition. underscore =
cursor save buffer.rendition.underscore;
current rendition.blink =
cursor save buffer.rendition.blink;
current rendition.reverse =
cursor_save_buffer.rendition.reverse;
origin mode = cursor save buffer.origin mode;
if (origin mode == DISPLACED)
{
if (active-position.line < top_margin)
active-position.line = top_margin;
if (active-position.line > bottom_margin)
active-position.line = bottom_margin;
if (active position. column < left margin)
active-position.column = left_margin;
if (active-position.column > right_margin)
active-position.column = right_margin;
}
in use table.gl = cursor save buffer. left;
designated graphic sets[O] = cursor save buffer.gO;
designated-graphic-sets[l] = cursor-save-buffer.gl;
designated graphic-sets [2] = cursor save buffer.g2;
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-191
29-Jun-1990
designated_graphic_sets[3] = cursor_save_buffer.g3;
if (conformance level >= LEVEL 2)
{
in use table.gr = cursor save buffer.right;
if-(level 2 extensions [SELECTIVE ERASE]==TRUE)
current-attribute. selective erase =
cursor_save_buffer. attribute. selective_erase;
}
}
Known Deviations:
In the VT100, VT101, VT102, VT125, VT131, and VT132, if the
restored cursor position lies outside of the scrolling region, and
the restored value of Origin Mode is set, the Active Position will
not be moved into the scrolling region, and an illegal (e.g.,
negative) cursor position value may result.
5.13.2
Terminal State Interrogation
Terminal State Interrogation (TSI) allows a host computer to query
most of the settable state in the terminal. Terminal state is
divided into three general catagories based on the ANSI syntax
used to control it:
(1) modes controlled by
set mode/reset mode; (2) selections and settings such as current
graphic rendition, and scroll margins.
(3) presentation state
such as tab stops and character sets. The terminal provides
control functions to query state in each of these catagories, as
well as a compact report that allows most settable state to be
saved and later restored in one operation.
All TSI controls operate at Levels 2, 3 and 4. Level 3 defines
TSI as an implicit extension at Level 2.
The following control
functions are provided to support Terminal State Interrogation.
DECRQM - Request Mode
Sequence sent from host to terminal to request the state of a
single mode.
DECRPM - Report Mode
Sequence sent from terminal to host to report the state of
the mode requested by DECRQM.
DECNKM - Numeric Keypad Mode
This is a selectable mode sequence which controls the keypad
allowing its state to be reported by DECRPM above.
See
"Keyboard Processing", DEC STD 70-6.
DECRQSS - Request Selection or Setting
VSRM - Character Cell Display EL~00070-05
For Review Only
Digital Internal Use Only
Page 5-192
29-Jun-1990
Sequence sent from host to terminal to request the state of a
selection or setting which is not encoded as a selectable
mode (example:
SGR).
DECRPSS - Report Selection or Setting
Sequence sent from terminal to host to report settings and
selections in response to DECRQSS.
DECRQPSR - Request Presentation State Report
Sequence sent from host to terminal to request presentation
state (cursor information and tab stops)
DECPSR - Presentation State Report
Control string sent from terminal to host in response to
DECRQPSR.
Two presentation state reports are defined:
(1)
Cursor Information Report - DECCIRi (2) Tabulation Stop
Report - DECTABSR
DECRSPS - Restore Presentation State
Control string sent from host to terminal to restore the
presentation state reported by DECPSR.
DECRQTSR - Request Terminal State Report
Sequence sent from host to terminal to request a compact
report of most settable state.
DECTSR - Terminal State Report
Control string sent from terminal to host which reports most
terminal state in one compact sequence.
DECRSTS - Restore Terminal State
Control string sent from host to VT420 to restore the
terminal state reported by DECTSR.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
DECRQM
REQUEST MODE
Levels:
Page 5-193
29-Jun-1990
2x (TSI), 3-4
Purpose:
To request the state of modes controlled by Set
Mode/Reset Mode sequences.
Format:
CSI
CSI
9/11
?
3/15
Ps
Ps
Ps
$
p
$
2/4
p
7/0
(ANSI modes)
(DEC private modes)
Description: This sequence takes one selective parameter
specifying a single selectable mode controllable using the Set
Mode and Reset Mode sequences. The terminal responds with a
Report Mode control sequence (DECRPM) which specifies the state of
the mode as follows:
(0) Unknown (mode is not recognized by
terminal); (1) Set; (2) Reset; (3) Set and cannot be changed; or
(4) Reset and cannot be changed.
All ANSI standard modes defined in X3.64-1979 are reported as
either Set or Reset. DEC Private modes that cannot be set or
reset from the host will report as unknown [Reason: the list is
long and changes frequently.
Since DEC defines these modes,
applications can infer how to handle unknown modes as needed] .
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-194
29-Jun-1990
Implementation Guideline
The VT420 allows the following selectable modes to
be queried through the use of the DECRQM control:
ANSI Specified
Mode Parameter
1
2
3
4
5
7
10
11
12
13
14
15
16
17
18
19
20
*
**
***
Mnemonic
GATM
*
KAM
CRM **
IRM
SRTM *
VEM
HEM
PUM
SRM
FEAM
FETM
MATM
TTM
SATM
TSM
EBM
LNM
*
*
*
*
*
*
*
*
*
*
DEC Private
Mode Parameter
Mnemonic
?1
?2
?3
?4
?5
?6
?7
?8
DECCKM
DECANM ***
DECCOLM
DECSCLM
DECSCNM
DECOM
DECAWM
DECARM
?18
?19
?25
DECPFF
DECPEX
DECTCEM
?42
?60
?61
?64
?66
?67
?68
?69
?73
DECNRCM
DECHCCM
DECVCCM
DECPCCM
DECNKM
DECBKM
DECKBUM
DECVSSM
DECXRLM
*
This mode is always Reset in the VT420 and
can not be changed.
The terminal will not respond to a DECRQM sequence
while in Control Representation Mode (this mode can
only report RESET). CRM can not be changed from
the host.
The terminal will not respond to a DECRQM sequence
when not in ANSI mode (this mode can only report SET) .
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-195
29-Jun-1990
REPORT MODE
Levels:
DECRPM
2x (TSI), 3-4
Purpose:
To report the state of modes controlled by Set
Mode/Reset Mode sequences (terminal to host) .
Format:
CSI
CSI
9/11
?
3/15
Ps1 ; Ps2
PsI ; Ps2
PsI; Ps2
$
$
y
2/4
7/9
Y
(ANSI modes)
(DEC private modes)
Description: This sequence is returned to the host upon receipt
of a valid DECRQM control sequence. This sequence reports the
state of a particular selectable mode to the host.
The first
selective parameter (PsI) is the selectable mode number (the
question mark ("?") must be added for DEC private selectable
modes), that was requested from the DECRQM sequence. The second
selective parameter (Ps2) indicates the state of that mode:
Ps2
0
1
2
3
4
State of mode
-------------
UNKNOWN
Mode is
Mode is
Mode is
Mode is
(mode not recognized by terminal) .
in SET state
in RESET state
in SET state, and cannot change
in RESET state, and cannot change
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-196
29-Jun-1990
REQUEST SELECTION OR SETTING
Levels:
DECRQSS
2x (TSI), 3-4
Purpose:
To request the state of a selection or setting which is
not encoded as a Set Mode/Reset Mode sequence.
Format:
DCS
9/0
$
2/4
q
D •.• D
7/1
D ... D
ST
9/12
Description: Request Selection or Setting is sent to the terminal
to determine the selection or setting of a single device feature,
such as the current Graphic Rendition (SGR). The data of the
device control string for DECRQSS contains the identifying
intermediate and final characters of the control sequence used to
make the selection. For example, if the command is to request the
state of SGR, the data would consist of a single character 'm',
which is the final character (no intermediates) in the control
sequence for SGR.
The terminal responds with a Report Selection
or Setting (DECRPSS) sequence.
Only one setting or selection may be queried per request.
Implementation Guideline
The VT420 allows the state of features selectable
through the following sequences to be determined
through DECRQSS:
Setting Control Sequence
Abbreviation
Select Active Status Display
Select Attribute Change Extent
Set Character Attribute
Set Conformance Level
Set Columns Per Page
Set Lines Per Page
Set Number of Lines per Screen
Set Status Line Type
Set Left and Right Margins
Set Top and Bottom Margins
Set Graphic Rendition
DECSASD
DECSACE
DECSCA
DECSCL
DECSCPP
DECSLPP
DECSNLS
DECSSDT
DECSLRM
DECSTBM
SGR
Final Character(s)
$ }
*
x
" q
" p
$ I
t
* I
$ '"
s
r
m
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
REPORT SELECTION OR SETTING
Levels:
Page 5-197
29-Jun-1990
DECRPSS
2x (TSI), 3-4
Purpose:
To report the state of a selection or setting which is
not encoded as a Set Mode/Reset Mode sequence (terminal to host) .
Format:
DCS
9/0
Ps
Ps
$
r
2/4
7/2
D ••• D
D .•• D
ST
9/12
Description: The Report Selection or Setting device control
string is issued from the terminal in response to a Request
Selection or Setting command.
The value of Ps indicates whether
the Request was successful:
Ps
meaning
o
UNKNOWN selection or setting, request unsuccessful
request successful, data contains selection information
1
The data returned by the DECRPSS control string is the entire
control function that the host would send to the terminal to
select or set the parameter being inquired, based on the current
setting or selection of that parameter, with the single exception
of the leading Control Sequence Introducer character (9/11, or
1/11 5/11 in 7 bits) .
The returned control function will contain no omitted parameters,
even if the inquired value is the default value.
In the case
where there is no default value for the inquired parameter, the
returned control function will be constructed so as to overwrite
the existing setting or selection, if and when that information is
returned to the device.
For example, if the current Graphic Rendition is blinking, and
reversed, the data would consist of the characters '0;5;7m', which
is the parameter string and final character necessary to change
the graphic rendition to that state.
Note that the coding of the DECRPSS control string which indicates
UNKNOWN, is always coded as follows:
DCS
0
$
r
ST
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
REQUEST PRESENTATION STATE REPORT
Levels:
Page 5-198
29-Jun-1990
DECRQPSR
2x (TSI), 3-4
Purpose:
To request presentation state (cursor information and
tab stops).
Format:
CSI Ps
9/i1 Ps
$
2/4
w
7/7
Description:
DECRQPSR causes the terminal to respond with a
Pre$entation State Report (DECPSR).
The control sequence takes
one selective parameter which specifies the type of Presentation
State Report to be returned.
Ps
Type of DECPSR
o
ignored, no report sent
Cursor Information Report
(DECCIR)
Tabulation Stop Report
(DECTABSR)
1
2
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-199
29-Jun-1990
PRESENTATION STATE REPORT
Levels:
DECPSR
2x (TSI), 3-4
Purpose: To report the presentation state (cursor information and
tab stops, terminal to host) .
Format:
DCS
9/0
Ps
Ps
$
u
2/4
7/5
D ••• D
D ••. D
ST
9/12
Description: The Presentation State Report is a device control
string containing data which represents the settings of
presentation attributes in the terminal. A Presentation State
Report is sent in response to a Request Presentation State Report
control sequence (DECRQPSR).
The type of Presenation State Report is specified by the value of
Ps:
Ps
Type of DECPSR
o
1
2
illegal
Cursor Information Report
Tabulation Stop Report
(DECCIR)
(DECTABSR)
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-200
29-Jun-1990
DECCIR
CURSOR INFORMATION REPORT
Levels:
2x (TSI), 3-4
Purpose:
To report the presentation state cursor information
Format:
DCS
9/0
1
3/1
$
2/4
u
D ••• D
7/5
D ... D
ST
9/12
Description:
The data of a device control string for a Cursor
Information Report consists of a string of parameters containing
the information saved through a Save Cursor (DECSC) command,
according to the following format:
Pr ; Pc ; Pp ; Srend ; Satt ; Sflag ; Pgl
Pgr
Scss ; Sdesig
where:
Pr, Pc
The cursor position (example:
24;132)
Pp
The current page (example:
3)
Note that in a single page configuration, the
Pp parameter would be 1.
Srend
One or more bytes containing the encoded
Graphic Renditions that must be saved,
according to the following bit-encoded format:
bit 8: always reset (0)
bit 7: always set (1)
bit 6: extension indicator: if this bit is
set (1), another byte of rendition
information follows (always reset on
VT420) .
bit 5: always reset (0)
bit 4: reverse video rendition
bit 3: blink rendition
bit 2: underline rendition
bit 1: bold rendition
For the actual rendition bits (1 through 5,
above) if the bit is set (1), it indicates
that the rendition has been selected.
Example:
if bold and underline are set the
terminal would report a single byte, coded in
binary as 01000011, or a hex 43, ASCII "C".
Satt
One or more bytes containing the encoded
Character Attributes that must be saved,
according to the following bit-encoded format:
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-201
29-Jun-1990
bit 8: always reset (0)
bit 7: always set (1)
if this bit is
bit 6: extension indicator:
set (1), another byte of character
attribute information follows
(always reset on VT420) .
bit 5: reserved for future use
bit 4: reserved for future use
bit 3: reserved for future use
bit 2 : reserved for future use
bit 1 : selectively erasable attribute
For the actual character attribute bits (1
through 5, above) if the bit is set (1), it
indicates that the character attribute has
been selected. Example:
if the selective
erase attribute is set, the terminal would
report a single byte, coded in binary as
01000001, or a hex 41, ASCII "A".
Sflag
One or more bytes containing several flags and
modes that must be saved, according to the
following bit-encoded format:
bit 8: always reset (0)
bit 7: always set (1)
bit 6: extension indicator:
if this bit is
set (1), another byte of flags follows
(always reset on VT420) .
bit 5: reserved for future use
bit 4: auto-wrap pending (1 if pending)
bit 3: SS3 pending (1 if SS3 received)
bit 2: SS2 pending (1 if SS2 received)
bit 1: origin mode (1 = set 0 = reset)
For the flags above, if the bit is set (1) it
indicates that the mode or state is set (as
indicated). Example:
if origin mode DECOM is
set, auto-wrap is pending, and an SS3 has been
received, the terminal would report a single
byte, coded in binary as 01001101, or a hex
4D, ASCII "M".
Pgl, Pgr
Character G-sets which are currently invoked
into GL and GR.
These parameters are
characters from 0 through 3, depending on
which of GO, G1, G2, or G3 are invoked into GL
and GR, respectively.
Scss
One byte containing the encoded information
regarding the size of the character sets
designated into GO through G3 according to the
following bit-encoded format:
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-202
29-Jun-1990
bit 8 : always reset (0)
bit 7 : always set (1)
bit 6 : extension indicator: if this bit is
set (1) , another byte of character
size information' follows (always
reset on VT420) .
bit 5: reserved for future use
bit 4 : size of G3 set
bit 3 : size of G2 set
bit 2: size of G1 set
bit 1: size of GO set
For the character set size bits (1 through 4,
above) if the bit is set (1), it indicates
that the graphic set contains a 96-character
character set.
If the bit is reset, the
graphic set contains a 94-character character
set. Example:
if ISO Latin Alphabet Nr 1
Supplemental, a 96-character character set is
designated into G2 and G3, and ASCII, a
94-character character set is designated into
GO and G1, the terminal would report a single
byte, coded in binary as 01001100 = hex 4C =
ASCII "L".
Sdesig
A string of bytes which consist of the strings
of designating tails of the character sets
designated into GO, G1, G2, and G3, in that
order. The designating tail consists of the
intermediate and final characters of the
Select Character Set (SCS) designating escape
sequence for the character set.
(Example:
If ASCII were designated into GO,
the Line Drawing (DEC Special Graphics) set
into G1, and the DEC Supplemental Set into G2
and G3, the value of Sdesig would be:
'BO%5%5' )
Note: this string is deliberately placed at
the end of the data of the DECCIR control
string, because the semicolon (;) separator
character used between the previous parameters
is a valid character in a SCS escape sequence.
Note:
This string will report the
Preference Supplemental Set (UPSS)
if that is how a character set was
DECRQUPSS can be used to determine
UPSS if needed.
User
designator
designated.
the actual
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-203
29-Jun-1990
Example
An example DECCIR report, assuming the default
state of the terminal would be:
1$u1;1;1;@;@;@;0;2;@;BB«
indicating that:
"1;1;1" - cursor home on first page
"@;@" - no graphic rendition or character
attribute active; DECOM reset, no SS2, SS3, or
auto-wrap is pending
(ASCII @ is binary 01000000)
"0;2" - GO in GL and G2 in GR
"@" - all character sets designated are
94-character character sets
"BB«" - ASCII in G1 and G2, User Preference
Supplemental Set in G2 and G3
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-204
29-Jun-1990
TABULATION STOP REPORT
DECTABSR
Levels:
2x (TSI), 3-4
Purpose:
To report the presentation state tab stops
Format:
DCS
9/0
2
3/2
$
2/4
u
D ••• D
7/5
D ... D
ST
9/12
Description: The data of a device control string for a Tabulation
Stop Report consists of ' a string of numeric parameters specifying
where tabulation stops are currently set in the terminal,
separated by slash ("/") characters. An example of a DECTABSR
when the terminal has 8 column tabs set would be as follows:
DCS 2 $ u 9 / 17 / 25 / 33 / 41 / 49 / 57 / 65 / 73 ST
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
RESTORE PRESENTATION STATE
Levels:
Page 5-205
29-Jun-1990
DECRSPS
2x (TSI), 3-4
Purpose: To report previously reported presentation state (cursor
information or tab stops).
Format:
DCS
9/0
Ps
Ps
$
t
D ••• D
2/4
7/4
D ••• D
ST
9/12
Description: This device control string is sent to reset the
terminal to the presentation state described in the data of the
control string. This DCS takes one selective parameter, which
indicates the format of the data of the DCS. The data of the DCS
must be in the format of one of the Presentation State Reports
(DECPSR). The type of DECPSR format that the data consists of is
specified by the selective parameter:
Ps
Type of DECPSR
o
error, restore ignored
Cursor Information Report
(DECCIR)
Tabulation Stop Report
(DECTABSR)
1
2
When this sequence is received by the terminal, the terminal will
begin to change the terminal state according to the state encoded
in the data of the control string.
If an invalid value is detected, the terminal will ignore the
error, if possible, and if not will ignore the remainder of the
data, parsing until a ST control is encountered. This may leave
the terminal state partially unrestored. No error indication is
returned to the host.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
REQUEST TERMINAL STATE REPORT
Page 5-206
29-Jun-1990
DECRQTSR
Levels:
2x (TSI), 3-4
Purpose:
To request a compact report of most settable state.
Format:
CSI
9/11
Ps
Ps
$
2/4
u
7/5
Description: DECRQTSR causes the terminal to issue a Terminal
State Report (DECTSR). Terminal State Reports transmit
information on global state within the terminal.
The type of
DECTSR returned depends on the value of the selective parameter.
Ps
Type of DECTSR
o
ignored, no report sent
Terminal State Report
(DECTSR)
1
If the terminal does not recognize the type of DECTSR requested,
the entire command is ignored.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-207
29-Jun-1990
TERMINAL STATE REPORT (1)
Levels:
DECTSR
2x (TSI) , 3-4
Purpose:
To report most settable terminal state in one compact
sequence.
Format:
DCS 1
9/11 3/1
$
2/4
s
7/3
D ... D
D ... D
ST
9/12
Description: The Terminal State Report is a device control string
containing a collection of terminal device attributes. A Terminal
State Report is sent in response to a Request Terminal State
Report control sequence (DECRQTSR) with Selective Parameter "1".
The data of the device control string for a Terminal State Report
consists of a Sixel encoded, string of a-bit bytes which contains
the the state information for the device.
This string is
guaranteed not to be longer than 256 characters, including the DCS
control character, introducer sequence, and ST control character.
The state information reported is the same as the state
information available through the other discrete TSI controls.
This generally represents all settable state in the terminal with
the exception of large data items that are not practical to report
(the contents of the logical display, DRCS, UDK definitions, and
Macros) .
The format of the data is firmware revision dependent.
Software
should not expect the format to remain the same across firmware
revisions or different members of a terminal family.
The format of DECTSR is: DCS 1 $ s D1 ... Dn ST
Where Dl ... Dn are data reported
is a two bytes check sum of Dl ... Dn
(checksum = 2's complement of D1 + D2 + ... + Dn;
8-bit addition with no Carry)
Implementation Guideline:
On the VT420, there are 110 bytes in D1 ... Dn,
system parameters are contained in low nibble of
each byte, and Dl ... Dn are in the range 4/0 to
4/15 (bit 6 of Dn always set, bit 7,5,4 of Dn
always reset).
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
RESTORE TERMINAL STATE
Page 5-208
29-Jun-1990
DECRSTS
------------------------------------------------------ ------~-----
Levels:
2x (TSI), 3-4
Purpose:
To restore previously reported terminal state (DECTSR).
Format:
DCS
9/0
Ps
Ps
$
2/4
p D ... D
7/0 D ... D
ST
9/12
Description: This device control string is sent to reset the
terminal to the state described in the data of the control string.
This DCS takes one selective parameter, which indicates the format
of the data of the DCS. The data of the DCS must be in the format
of one of the Terminal State Reports (DECTSR). The type of DECTSR
format that the data consists of is specified by the selective
parameter:
Ps
Type of DECTSR
o
illegal, restore ignored
Terminal State Report (DECTSR)
1
When this sequence is received, buffered, and checksummed by the
terminal, the terminal will begin to change the terminal state
according to the state encoded in the data of the control string.
If the checksum fails, the entire sequence is ignored.
If an
invalid value is detected, the terminal will ignore the error if
possible, and if not, ignore the remainder of the data, parsing
until a ST control is encountered. This may leave the terminal in
a partially unrestored state. No error indication is returned to
the host.
Note
Software should not depend on the format of the
Terminal State Report (DECTSR) to be the same
across members of the VT400 family, nor even
across different firmware revisions of a single
terminal model. Software should not use DECRSTS
to restore a terminal to a saved state unless that
state was previously read from the terminal.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14
5.14.1
Page 5-209
29-Jun-1990
INTERNAL FUNCTIONS AND PROCEDURES
End Of Line
/*************
**
*
*
end of line
This function returns the last position of the line
based on its line attributes and column ,mode.
**
assumes line is on the current page
*************/
short int end of line (line)
line t line; {
line_t base;
/* first line(-l) of page */
column t end line;
/* ...... -: .... *7
if (column mode = ONE THIRTY TWO) end line
else end_line = 80; base = (active-position.page-1)
if (line rendition[line + base]
end line /= 2;
return(end line);
}
-
*
=
132;
lines-per-page;
!= SINGLE_WIDTH)
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14.2
Page 5-210
29-:Jun-1990
Scroll Up
/****************
**
**
scroll_up
This procedure causes the scroll area between the line
* designated and the Bottom Margin (inclusive) on the
* active page to scroll upward by the number of lines
*
*
*
*
*
designated in the count. Line and Character Rend~tions
are scrolled with the data. A new single-width line with
all character positions empty is inserted at the Bottom Margin.
Lines scrolled off the top of the scrolling region are lost.
******************/
void scroll up(top line, count)
line t top line;line-t count;
{
line t y;
column t X;
line t-base;
/* first line(-l) of page */
/* .... -:- .......... */
base = (active_position.page-1)
while (count > 0)
*
lines-per-page;
{
for (y=top line+base; y-0)
* lines_per_page;
{
for (y=bottom_margin+base; y>top_line+base; y--)
{
line rendition[y] = line rendition[y-1];
for (x=left margin; x<=right margin; x++)
strncpy( display[y] [x], display[y-1] [x],
sizeof(character_t»;
}
line rendition[top line+base] = SINGLE WIDTH;
for (x=left margin; x<=right margin; x++)
display[top line] [x] . code ~ EMPTY CHARACTER;
count -= 1; }
} /* end scroll down */
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.14.4
Page 5-212
29-Jun-1990
Scroll Left
/****************
**
**
*
*
*
*
*
*
scroll left
This procedure causes the scroll area between the column
designated and the Right Margin (inclusive) on the
active page to scroll leftward by the number of columns
designated in the count. A new column with all character
positions empty is inserted at the Right Margin.
Characters scrolled past the scrolling region are lost.
******************/
void scroll left(left column, count)
column t left column;
column t count;
{
line t Yi
column t X;
line t-basei
/* first line(-l) of page */
/* .... -:-.......... */
base = (active-position.page-l)
while (count > 0)
*
lines per-page;
-
{
for (y=top margin+base; y<=bottom margin+base; y++)
{for (x=left column; x 0)
*
lines-per-page;
{
for (y=top margin+base; y<=bottom margin+base; y++)
{for (x=right margin; x>left column; x--)
strncpy( display[y] [x], display[y] [x-I],
sizeof(character t));
display[y] [left column] . code = EMPTY CHARACTER;
}
count -= 1;
}
} /* end scroll_right */
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.15
Page 5-214
29-Jun-1990
CONTROL FUNCTION REFERENCE TO OTHER CHAPTERS
This subsection lists ANSI control functions that are not
described in this chapter (DEC STD 70-5, Character Cell Display)
and indicates where in the VSRM they are described as a reference
to the rest of ANSI host interface.
Control Function Reference
Terminal Management Functions
DA
- Device Attributes
DECRPTUI
Report Terminal Unit ID
DSR
Device Status Report
DECID
Identify Device
DECSCL
Select Conformance Level
DECSR
- Secure Reset
DECSRC
- Secure Reset Confirmation
DECSTR
-Soft Terminal Reset
DECSTUI - Set Terminal Unit ID (Restricted)
RIS
- Reset to Initial state
Code Extension Functions
Announce Subset of Code Extension Facilities
Locking Shifts: LSO, LS1, LS2, LS3, LS1R, LS2R, LS3R
Single Shifts: SS2, SS3
S7C1T - Select 7-bit Cl Transmission
S8C1T - Select 8-bit Cl Transmission
Keyboard Processing Functions
DECARM
- Autorepeat Mode
DECBKM
- Backarrow Key Mode
DECCKM
- Cursor Keys Mode
DECKBUM - Keyboard Usage Mode
DECKPAM - Keypad Application Mode
DECKPNM - Keypad Numeric Mode
DECNKM
- Numeric Keypad Mode
DSR
- Device Status Report (keyboard status)
KAM
- Keyboard Action Mode
DECLFC
- Local Functions Control
DECLFKC - Local Function Key Control
DECSMKR - Select Modifier Key Reporting
DECKPM
- Key position Mode
DECEKBD - Extended Keyboard Report
Terminal Synchronization
XON
XOFF
BREAK
DECXRLM - Transmit Rate Limiting Mode
Extensions
DRCS
DECDLD - Downline Load
UDK
DECUDK - User Defined Keys
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-215
29-Jun-l990
DSR
- Device status Report (UDK lock)
Session Management Extension
DECES - Enable Sessions
Printer Port
DECPEX - Print Extent Mode
DECPFF - Print Form Feed Mode
DSR
Device Status Report (printer port)
MC
- Media Copy
Status Display
DECSASD - Select Active Status Display
DECSSDT - Select Status Display Type
Documented Exceptions
DECANM - ANSI/VT52 Mode
DECALN - Screen Alignment
DECAWM - Autowrap Mode
DECTST - Invoke Confidence Test
CRM
- Control Representation Mode
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.16
Page 5-216
29-Jun-1990
CHANGE HISTORY
5.16.1
Rev 0.4 To 0.5
The following changes were made at this revision to properly
integrate this section with the rest of the Video Systems
Reference Manual:
1.
The name was changed from "Character Cell Display Level
1" to "Character Cell Display". All references to Level
1 operation only were removed, and explicit reference to
both Levelland Level 2 operation was added for all
functions.
2.
The Reference Standards section was updated.
3.
The Conformance section, the list of conforming products,
and the tables of required functions were removed and
made a separate chapter in the Video SRM ("Conformance
Requirements") .
4.
The program flow diagrams and the executive routines were
moved to the chapter "Specification Program Structure".
5.
The Reset to Initial State control was moved to the
chapter "Terminal Management".
6.
Some variable names were changed to be consistent with
their use throughout the rest of the Video SRM.
7.
The algorithm for Insert or Replace Character was
corrected to include the processing of Single Shift
control functions.
8.
The Set Mode and Reset Mode control functions were moved
to the chapter "Specification Program Structure", and
their detailed implementation was broken out into a
separate section for each mode related to Character Cell
Display operation.
9.
The description of Blink rendition was changed.
10.
A note was added concerning software dependence on the
speed of implementing changes of state in Screen Mode.
11.
The purpose section for Line Feed, Vertical Tab, Form
Feed, Index, Reverse Index, and Next Line was reworded to
indicate scrolling if necessary, and to indicate (where
appropriate) the use of fallback implementation in video
terminals.
12.
The section on Substitute was reworded to remove the
reference to "fallback" character.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-217
29-Jun-1990
13.
The note on software use of Horizontal and Vertical
Position was changed to remove the reference to
retransmission.
14.
A definition was added for the term "Margin".
15.
Beginning of line and end of line conditions were added
to the Erase In Display algorithm.
16.
Clearing of the Last Column Flag was added to the
algorithms for Delete Character and Reset Auto Wrap Mode.
17.
A note was added to the section on slow scrolling to
indicate that it must render text "recognizable", but not
necessarily "readable".
18.
A note was added on conforming software use of Double
Height lines.
19.
A section was added for Character Set Selection, which
was previously a part of the chapter "Code Extension
Layer".
20.
A section was added for the Warning Bell, which was
previously a part of the "Terminal Management" chapter.
21.
A section was added for Text Cursor Enable Mode, which
was previously a part of the "Terminal Management"
chapter.
22.
A section was added for Control Representation Mode,
which is currently planned for Level 2 terminals (subject
to review) .
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
5.16.2
1.
Page 5-218
29-Jun-1990
Revision 0.5 To AX10
Added the Selectively Erasable Characters extension,
which required the following:
1.
A state description for Character Attributes.
2.
New entries in the state tables.
3.
Addition of the Select Character Attribute (DECSCA)
control function.
4.
Modification of the Erase In Line (EL) and Erase In
Display (ED) control functions.
5.
Addition of the Selective Erase In Line (DECSEL) and
Selective Erase In Display (DECSED) control
functions.
It also required changes to the following routines:
Insert or Replace Graphic Character
Save Cursor
Restore Cursor
2.
Removed Control Representation Mode (CRM) to an appendix
to the SRM.
It will not be invokable from the host.
3.
Added the Erase Character (ECH) and Insert Character
(ICH) control functions.
4.
Added a note to the description of Auto Wrap Mode to
indicate that Space characters also affect the wrap
condition.
5.
Added the following control functions to the list of
functions which clear the Auto Wrap state (Last Column
Flag) :
Erase Character
Insert Character
Erase In Line
Selective Erase In Line
Erase In Display
Selective Erase In Display
6.
Added a note that the Current Attribute is saved in the
Cursor Save Buffer if the Selectively Erasable Characters
extension is supported.
7.
Added values to the Select Graphic Rendition (SGR)
control function for Level 2 to turn off Bold, Blink,
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-219
29-Jun-1990
Underscore, and Reverse renditions.
8.
Made minor corrections to the algorithms for Double Width
and Double Height lines.
9.
Added a note to the Substitute control function referring
to the section "Code Extension Layer" for the handling of
Substitute within escape and control sequences.
10.
Added a deviation note to the Index control function for
the VT100 and VT125 to indicate that in these terminals
the control is affected by the setting of New Line Mode.
11.
Changed the algorithm for Tabulation Clear (TBC) to
process multiple selective parameters.
12.
Made extensive changes to the algorithms for Erase In
Line (EL) and Erase In Display (ED) to provide the
following:
o processing of multiple selective parameters.
o setting of line rendition to single width when all
characters are erased.
o processing of private parameter for selective
erase function.
13.
Corrected the coding of Delete Character (DCH), which is
CSI Pn P.
14.
Added a note on the use of User Preference Features
(modes) which are not to be used by software except in
response to an explicit user request.
15.
Made notes that setting and resetting Column Mode
(DECCOLM) will clear the screen, etc., even if the
terminal was already in the selected state.
16.
Noted that the Warning Bell may be disabled in Setup.
17.
Modified the descriptions of Vertical Tab (VT) and Form
Feed (FF) to point to the Line Feed algorithm.
18.
Made Insert Replacement Mode (IRM), Delete Character
(DCH), Delete Line (DL), and Insert Line (IL) a Levell
Editing Extension, which is required in all future Level
1 implementations, and in Level 2. Removed all VT100
family deviation notes on these functions.
19.
Made Auto Wrap Mode an exception to Levell, and removed
all references to this and the Last Column Flag. Also
removed all VT100 family deviation notes on this
function.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-220
29-Jun-1990
20.
Modified the Save Cursor (DECSC) and Restore Cursor
(DECRC) descriptions to differentiate between Levelland
Level 2 functionality.
21.
Added a character set table to the state descriptions and
modified the algorithms for Designate Character Set to
accommodate redefinition of the designator sequences
using DRCS.
22.
Corrected dual coding in the algorithm for Insert or
Replace Graphic Characters.
23.
Added a note to the Restore Cursor control indicating the
handling of the condition in which the cursor is restored
outside of the scrolling region with Origin Mode set.
24.
Made corrections in the algorithms for Erase Character,
Delete Character, Insert Character, Delete Line, and
Insert Line.
25.
Added a note on the use of the UK character set in Level
1 operation to the section on character set designation.
5.16.3
Rev AX10 To AXIl
1.
Removed Rev AX10 change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.
2.
Added note that level 2 SGR parameters may be recognized
when device is operating in level 1 mode, but that
conforming software shall not rely on this feature.
3.
Corrected sense of Selectively Erasable Attribute (set
using DECSCA). The default or attribute off condition is
that characters are selectively erasable.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.16.4
Page 5-221
29-Jun-1990
Rev AXIl To AX12
1.
Removed Rev AXIl change bars. Added change bars to any
change that could affect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.
2.
Updated Reference Standards section and put at end after
Change History per convention for other chapters.
3.
Added section to Introduction explaining chapter
organization as a number of small sections. Re-organized
entire chapter to group related controls by function
instead of syntax.
4.
Modified all code to operate on the current page.
Terminology Section:
5.
Removed definitions of the following terms which are
defined in the Code Extension section:
Bit Combination
Character
Control Character
Control Function
Control Sequence
Control String
Escape Character (ESC)
Escape Sequence
Final Character
Intermediate Character
Numeric Parameter
Parameter
Parameter String
Selective Parameter
6.
Added definition of Logical Display - the lines and
columns available for storing and presenting graphic
characters as seen by the application or host computer.
A Logical Display may be organized as a single
rectangular array of lines and columns (one page), or
divided into a number of identically sized pages, each of
which is a rectangular array of lines and columns.
7.
Added definition of Page - An addressable area of a
Logical Display organized as a rectangular array of lines
and columns.
The number of lines and columns defines the
Page Size.
8.
Added subsection titled "Code Extension Terms" listing
terms defined in the Code Extension chapter of the VSRM
(DEC STD 70-3) .
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
9.
Page 5-222
29-Jun-1990
Removed the following terms which do not appear in the
text of the chapter:
Introducer; Transfer; Transmission
Control.
10.
Clarified definition of Control Sequence Introducer (CSI)
- The C1 control (represented by a single character in
8-bits, or a two character ESC Fe sequence in 7-bits)
which initiates a control sequence. CSI is a prefix
affecting the interpretation of a limited number of
contiguous bit combinations.
[This should be in the Code
Extension chapter as well, but isn't at this time]
11.
Clarified definition of Default - A function-dependent
value that is assumed when no explicit value, or a value
of 0, is specified.
12.
Clarified definition of Margin - A line which marks the
upper or lower boundary of the scrolling region (vertical
scroll margin). A column which marks the left or right
boundary of the scrolling region (horizontal scroll
margin) .
Display Coordinate System and Addressing
13.
Logical Display: Described concept of Logical Display
and Page Size, default sizes, and ability to change it.
14.
Margins and Scrolling: Re-organized text to combine
syntax and semantics to be easier to follow. Added
section summarizing interaction of controls with
scrolling region. Added list of controls defined in this
section. Added descriptions for: DECSLRM, DECLRMM,
DECFI, DECBI to support left and right margins.
15.
Cursor Movement: Added DECXCPR extended cursor position
report for use at Level 4, or with the Windowing
Extension. Updated algorithms for CUF and CUB to check
right and left margins.
Page Size and Arrangement:
16.
Added description of DECSCPP and DECSLPP to support Level
4, or Windowing Extension.
Page Movement:
17.
New Subsection describing page movement controls for use
at Level 4, or with the Windowing Extension.
Windowing Extension:
18.
Completely new subsection describing Windowing Extension.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
Page 5-223
29-Jun-1990
Visual Renditions
19.
Added new subsection on ANSI Color Text Extension.
SGR
parameters 31-37, 39, 41-47, 49. Color Maps. DECCTRcolor table report.
Interactions with other visual
attributes. Guidelines for default color assignment.
DECSTGLT - Select Text Graphics Look-Up Table (for
alternate text rendition mapping) .
Graphic Character Sets
20.
Expanded section on Grahic Character sets including which
sets are required at different conformance levels and
extensions. Designating sequences for character sets.
8-bit Interface Architecture Extension. NRCS Extension.
Editing Functions:
21.
Modified description of character insertion to cover
behavior with respect to the margins.
22.
Modified description of ICH, IL, and DL to be restriced
to text within the Left Right Margins.
23.
Added descriptions of DECIC and DECDC to support left and
right margins.
24.
Noted ECH, ELf DECSEL, ED, and DECSED are not affected by
the margins.
OLTP Features
25.
Completely new subsection describing VT420 OLTP features.
Saving and Restoring Terminal State
26.
Terminal State Interrogation:
describing TSI
Completely new subsection
27.
Modified note on DECCIR (Cursor Information Report) to
specify sequence returns UPSS designator if G-set was
designated that way.
Internal Functions and Procedures
28.
Modified routines scroll up and scroll down to operate
within the left and right margins.
29.
Added routines scroll left and scroll_right.
Control Function Reference to Other Chapters
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
30.
Page 5-224
29-Jun-1990
Completely new subsection- listing control functions and
what chapter of the VSRM they are described in.
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
5.17
Page 5-225
29-Jun-1990
REFERENCE STANDARDS
DIGITAL STANDARDS
EL-00138-00
DEC STD 138 Registry of Control
Functions for Character-Imaging Devices
EL-00169-00
DEC STD 169 Digital Standard Coded
Graphic Character Sets for Hardware
and Software
Copies of Digital Standards Can be obtained from Standards and
Methods Control, CTSl-2/D4, DTN 287-3724, JOKUR::SMC
ANSI AND ISO STANDARDS
ANSI X3.4 - 1986
American National Standard Code for
Information Interchange (ASCII character set)
ANSI X3.41 - 1974
American National Standard Code Extension
Techniques for use with the 7-Bit Coded
Character Set of the American National
Standard Code for Information Interchange
ANSI X3.64 - 1979
Additional Controls for use with American
National Standard Code for Information
Interchange
dpANS X3.134.1-1985 8-bit ASCII Structure and Rules
dpANS X3.134.2-1985 7-bit and 8-bit ASCII Supplemental
Multinational Graphic Character Set
ISO 646
7-Bit Coded Character Set
for Information Interchange
ISO 2022:1986
Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques
ISO 6429:1988
Information Processing /
Additional Controls for use with
Character Imaging Devices
ISO 8859-1:1987
Information Processing /
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1;
Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries.
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
Page 5-226
29-Jun-1990
Section Index
Active Position, 5-20
definition, 5-9
Alternative Text Rendition
Mapping, 5-113
Application
definition, 5-9
Application Program
definition, 5-9
ASCII, 5-115
Assign User-Preference
Supplemental Set, 5-123
Audible Indicator
definition, 5-10
Audible Indicators, 5-114
Back Index
control function, 5-39
Back Space
control function, 5-63
BEL, 5-114
Bell
definition, 5-10
8-bit Architecture Extension,
5-115
8-bit Multinational Characters,
5-126
7-bit NRCS Characters, 5-126
Blink Rendition, 5-101
Bold Rendition, 5-101
Bottom Margin, 5-25
default value, 5-25
BS, 5-63
Carriage Return
control function, 5-58
Change Attributes Rectangular
Area
control function, 5-173
Character
attribute, 5-165
rendition, 5-101
Character Attribute, 5-165
definition, 5-10
normal, 5-165
selection, 5-166
selectively erasable, 5-165
Character Cell, 5-19
Character Cell Display
definition, 5-6
Character Imaging Device
definition, 5-10
Character Position, 5-19
definition, 5-10
Character Rendition
definition, 5-10
Character Set
designation, 5-117
Character Set Mode, 5-126
Character Set Selection
DECNRCM, 5-126
UPSS, 5-123, 5-125
Character Sets, 5-115
Checksum Report, 5-181
Color Table Report, 5-109
Color Table Request, 5-109
Color Table Restore, 5-109
Color Text Extension, 5-106
Column, 5-19
132-Column Extension, 5-19, 5-71
Column Mode
control function, 5-71
Control Code
back index, 5-39
back space, 5-63
carriage return, 5-58
form feed, 5-62
forward index, 5-37
horizontal tab, 5-67
horizontal tabulation set, 5-69
index, 5-34
line feed, 5-59
next line, 5-64
reverse index, 5-36
substitute, 5-132
vertical tab, 5-61
Control Codes
warning bell, 5-114
Copy Rectangular Area
control function, 5-169
CPR, 5-53
CR, 5-58
CUB, 5-47
CUD, 5-43
CUF, 5-45
CUP, 5-49
Cursor, 5-20
definition, 5-10
Cursor Backward
control function, 5-47
Cursor Control
definition, 5-11
Cursor Down
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
control function, 5-43
Cursor Forward
control function, 5-45
Cursor Information Report, 5-200
Cursor Movement
cursor backward, 5-47
cursor down, 5-43
cursor forward, 5-45
cursor position, 5-49
cursor position report, 5-53
cursor up, 5-41
extended cursor position report,
5-55
horizontal/vertical position,
5-51
Cursor Position
control function, 5-49
Cursor Position Report
control function, 5-53
Cursor Save and Restore
restore cursor, 5-189
save cursor, 5-187
Cursor Save Buffer, 5-186
Cursor Symbol, 5-21
definition, 5-10
Cursor Up
control function, 5-41
CUU, 5-41
DCH, 5-144
DEC STD 169, 5-225
DEC Supplemental, 5-115
DEC Technical, 5-115
DECAUPSS, 5-123
DECBI, 5-39
DECCARA, 5-173
DECCIR, 5-200
DECCKSR, 5-181
DECCOLM, 5-71
DECCRA, 5-169
DECCTR, 5-109
DECDC, 5-151
DECDHLB, 5-99
DECDHLT, 5-99
DECDMAC, 5-182
DECDWL, 5-97
DECERA, 5-171
DECFI, 5-37
DECFRA, 5-170
DECHCCM, 5-85
DECIC, 5-150
DECINVM, 5-184
DECMSR, 5-185
DECNRCM, 5-126
DECOM, 5-29, 5-31
Page Index-1
29-Jun-1990
DECPCCM, 5-87
DECPSR, 5-199
DECRARA, 5-175
DECRC, 5-189
DECRPDE, 5-88
DECRPM, 5-195
DECRPSS, 5-197
DECRQCRA, 5-179
DECRQDE, 5-88
DECRQM, 5-193
DECRQPSR, 5-198
DECRQSS, 5-196
DECRQTSR, 5-206
DECRQUPSS, 5-125
DECRSPS, 5-205
DECRSTS, 5-208
DECSACE, 5-177
DECSC, 5-187
DECSCA, 5-166
DECSCLM, 5-32
DECSCNM, 5-94, 5-107
DECSCPP, 5-73
DECSED, 5-162
DECSEL, 5-159
DECSERA, 5-172
DECSLPP, 5-75
DECSLRM, 5-27
DECSNLS, 5-89
DECSTBM, 5-25
DECSTGLT, 5-113
DECSWL, 5-96
DECTABSR, 5-204
DECTCEM, 5-21
DECTSR, 5-207
DECVCCM, 5-86
DECXCPR, 5-55
Default
definition, 5-11
left and right margins, 5-27
scrolling region, 5-25, 5-27
top and bottom margins, 5-25
default colors, 5-110
Define Macro
control function, 5-182
Delete
character, 5-144
definition, 5-11
line, 5-148
Delete Character
control function, 5-144
Delete Column
control function, 5-151
Delete Line
control function, 5-148
Designate
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
character set, 5-117
definition, 5-11
Designate Character Set
control function, 5-117
Device Status Report
memory checksum, 5-180
Display, 5-19
definition, 5-11
Display Attributes
select character attribute,
5-166
select graphic rendition, 5-103
DL, 5-148
Double Height Line, 5-95
control function, 5-99
Double Width Line, 5-95
control function, 5-97
dpANS X3.134.1-1985, 5-225
DRCS, 5-115
DSR, 5-180
macro space report, 5-185
ECH, 5-152
ED, 5-156
Editor Function
definition, 5-11
EL, 5-154
Empty Character
definition, 5-11
End Of Line
internal function, 5-209
Enter
definition, 5-11
Erase
character, 5-152
definition, 5-11
in display, 5-156
in line, 5-154
(selective) in display, 5~162
(selective) in line, 5-159
Erase Character
control function, 5-152
Erase In Display
control function, 5-156
Erase In Line
control function, 5-154
Erase Rectangular Area
control function, 5-171
Extended Cursor Position Report
control function, 5-55
Extension
Color Text, 5-106
132-Column, 5-19
132-column, 5-19, 5-71
Horizontal Scrolling, 5-23
Page Index-2
29-Jun-1990
Levell, 5-19
Level 2, 5-19
FF, 5-62
Fill Rectangular Area
control function, 5-170
Fixed Space
definition, 5-11
Font
definition, 5-11
Form Feed
control function, 5-62
Format Effector
definition, 5-11
Forward Index
control function, 5-37
G-Sets, 5-118
GO, 5-118
G1, 5-118
G2, 5-118
G3, 5-118
GL, 5-118
GR, 5-118
Graphic Character
definition, 5-12
insertion, 5-139
replacement, 5-139
Graphic Rendition, 5-101
blink, 5-101
bold, 5-101
definition, 5-12
normal, 5-101
reverse, 5-102
selection, 5-103
underscore, 5-102
Graphic Symbol
definition, 5-12
Horizontal Cursor Coupling Mode
control function, 5-85
Horizontal Scrolling
Extension, 5-23
Horizontal Tab
control function, 5-67
Horizontal Tabulation, 5-65
clearing, 5-66
default, 5-65
Horizontal Tabulation Set
control function, 5-69
Horizontal/Vertical Position
control function, 5-51
HT, 5-67
HTS, 5-69
HVP, 5-51
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
ICH, 5-142
IL, 5-146
In Use Table, 5-118
IND, 5-34
Index
control function, 5-34
indexed color, 5-107
Insert
character, 5-142
Insert Character
control function, 5-142
Insert Column
control function, 5-150
Insert Line
control function, 5-146
Insert/Replacement Mode
control function, 5-138
Insertion
character, 5-139
Interfaces
external, 5-8
internal, 5-8
Internal Functions
end of line, 5-209
scroll down, 5-211
scroll left, 5-212
scroll right, 5-213
scroll up, 5-210
Invoke
definition, 5-12
Invoke Macro
control function, 5-184
IRM, 5-138
ISO 8859-1, 5-225
ISO Latin-1 Supplemental, 5-115
Left Margin, 5-27
default value, 5-27
Left Right Margin Mode
control function, 5-29
LF, 5-59
Line, 5-19
definition, 5-12
rendition, 5-95
Line Drawing, 5-115
Line Feed
control function, 5-59
Line Rendition, 5-95
double-height line, 5-99
double-width line, 5-97
single-width line, 5-96
LNM, 5-57
Logical Display, 5-19, 5-70
definition, 5-12
Page Index-3
29-Jun-1990
Macro Space Report, 5-185
DSR, 5-185
Margin
definition, 5-12
Margins, 5-23
Memory Checksum
DSR, 5-180
Modes, 5-133
column, 5-71
definition, 5-12
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
Send-Receive, 5-135
text cursor enable, 5-21
Vertical Cursor Coupling, 5-86
National Replacement Character
Set Mode, 5-126
NEL, 5-64
New Line Mode, 5-57
control function, 5-57
Next Line
control function, 5-64
Next Page
control function, 5-77
Normal Rendition, 5-101
NP, 5-77
NRCS, 5-115
Operating System
definition, 5-12
Origin Mode
control function, 5-31
Page, 5-19
definition, 5-12
Page Arrangement, 5-70
Page Cursor Coupling Mode
control function, 5-87
Page Position Absolute
control function, 5-81
Page position Backward
control function, 5-83
Page Position Relative
control function, 5-82
Page Size, 5-19, 5-70
Pan Down, 5-91
Pan Up, 5-92
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
PP, 5-79
PPA, 5-81
PPB, 5-83
PPR, 5-82
Preceding Page
control function, 5-79
Presentation State Report, 5-199
Received Data Stream
definition, 5-13
Reference Standards, 5-225
ReGIS, 5-112
Replacement
character, 5-139
Report Displayed Extent, 5-88
Report Mode, 5-195
Report Selection or Setting,
5-197
Request Checksum of Rectangular
Area
control ~unction, 5-179
Request Displayed Extent, 5-88
Request Mode, 5-193
Request Presentation State Report,
5-198
Request Selection or Setting,
5-196
Request Terminal State Report,
5-206
Request User-Preference
Supplemental Set, 5-125
Reset Mode
column, 5-71
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
send receive mode, 5-135
text cursor enable, 5-21
Vertical Cursor Coupling, 5-86
Restore Cursor
control function, 5-189
Restore Presentation State, 5-205
Restore Terminal State, 5-208
Reverse Attribute, 5-112
Reverse Attributes Rectangular
Area
control function, 5-175
Reverse Index
control function, 5-36
Page Index-4
29-Jun-1990
Reverse Rendition, 5-102
RI, 5-36
Right Margin, 5-27
default value, 5-27
Save Cursor
control function, 5-187
Screen Mode
control function, 5-94
Scroll
definition, 5-13
Scroll Down, 5-92
internal function, 5-211
Scroll Left
internal function, 5-212
Scroll Right
internal function, 5-213
Scroll Up, 5-91
internal function, 5-210
Scrolling, 5-23
Scrolling Mode
control function, 5-32
Scrolling Region, 5-23, 5-25,
5-27, 5-31, 5-32
default value, 5-25, 5-27
SD, 5-92
Select Attribute Change Extent
control function, 5-177
Select Character Attribute
control function, 5-166
Select Graphic Rendition
control function, 5-103
Select Number of Lines per Screen,
5-89
Select Text/Graphics Look-Up
Table, 5-113
Selective Erase In Display
control function, 5-162
Selective Erase In Line
control function, 5-159
Selective Erase Rectangular Area
control function, 5-172
Selectively Erasable Characters,
5-165
Send-Receive Mode
control function, 5-135
Service Class
character cell display, 5-6
Set Columns Per Page
control function, 5-73
Set Left and Right Margins
control function, 5-27
Set Lines Per Page
control function, 5-75
Set Mode
VSRM - Character Cell Display EL-00070-05
Digital Internal Use Only
For Review Only
column, 5-71
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
send receive mode, 5-135
text cursor enable, 5-21
vertical Cursor Coupling, 5-86
Set Top and Bottom Margins
control function, 5-25
SGR, 5-103, 5-106, 5-107
Single Width Line, 5-95
control function, 5-96
Sixels, 5-112
Software Conformance
designate character sets, 5-118
double-height lines, 5-95, 5-99
horizontal/vertical position,
5-51
new line mode, 5-57
screen mode, 5-94
SRM, 5-135
String Delimiter
definition, 5-13
SU, 5-91
SUB, 5-132
Substitute
control function, 5-132
Tabulation
clearing, 5-66
definition, 5-13
horizontal, 5-65
stop, 5-13
Tabulation Clear, 5-66
control function, 5-66
Tabulation Stop
definition, 5-13
Tabulation Stop Report, 5-204
Tabulation Stops
clearing, 5-66
default, 5-65
horizontal, 5-65
TBC, 5-66
Terminal State Report (1), 5-207
Text Cursor Enable Mode
control function, 5-21
Top Margin, 5-25
default value, 5-25
Transmit
Page Index-5
29-Jun-1990
definition, 5-13
Transmitted Data Stream
definition, 5-13
TSI, 5-109
cursor information report,
5-200
Presentation State Report,
5-199
report mode, 5-195
report selection or setting,
5-197
request Mode, 5-193
request presentation state
report, 5-198
request selection or setting,
5-196
request terminal state report,
5-206
restore presentation state,
5-205
restore terminal state, 5-208
tabulation stop report, 5-204
terminal state report (1),
5-207
UK set, 5-115
Underscore Rendition, 5-102
UPSS, 5-123, 5-125
User-Preference Supplemental Set,
5-123, 5-125
vertical Cursor Coupling Mode
control function, 5-86
vertical Tab
control function, 5-61
VT, 5-61
Warning Bell
control function, 5-114
Windowing Extension
DECHCCM, 5-85
DECPCCM, 5-87
DECRQDE/DECRPDE, 5-88
DECSCPP, 5-73
DECSLPP, 5-75
DECVCCM, 5-86
DECXCPR, 5-55
NP, 5-77
PP, 5-79
PPA, 5-81
PPB, 5-83
PPR, 5-82
SD, 5-92
SU, 5-91
VSRM - Character Cell Display EL-00070-05
For Review Only
Digital Internal Use Only
column, 5-71
Horizontal Cursor Coupling,
5-85
insert/replacement, 5-138
Left Right Margin, 5-29
new line, 5-57
origin, 5-31
Page Cursor Coupling, 5-87
screen, 5-94
scrolling, 5-32
send receive mode, 5-135
text cursor enable, 5-21
Vertical Cursor Coupling, 5-86
Set Top and Bottom Margins
control function, 5-25
SGR, 5-103, 5-106, 5-107
Single Width Line, 5-95
control function, 5-96
Sixels, 5-112
Software Conformance
designate character sets, 5-118
double-height lines, 5-95, 5-99
horizontal/vertical position,
5-51
new line mode, 5-57
screen mode, 5-94
SRM, 5-135
String Delimiter
definition, 5-13
SU, 5-91
SUB, 5-132
Substitute
control function, 5-132
Tabulation
clearing, 5-66
definition, 5-13
horizontal, 5-65
stop, 5-13
Tabulation Clear, 5-66
control function, 5-66
Tabulation Stop
definition, 5-13
Tabulation stop Report, 5-204
Tabulation Stops
clearing, 5-66
default, 5-65
horizontal, 5-65
TBC, 5-66
Terminal State Report (1), 5-207
Text Cursor Enable Mode
control function, 5-21
Top Margin, 5-25
default value, 5-25
Transmit
Page Index-5
29-Jun-1990
definition, 5-13
Transmitted Data Stream
definition, 5-13
TSI, 5-109
cursor information report,
5-200
Presentation State Report,
5-199
report mode, 5-195
report selection or setting,
5-197
request Mode, 5-193
request presentation state
report, 5-198
request selection or setting,
5-196
request terminal state report,
5-206
restore presentation state,
5-205
restore terminal state, 5-208
tabulation stop report, 5-204
terminal state report (1),
5-207
UK set, 5-115
Underscore Rendition, 5-102
UPSS, 5-123, 5-125
User-Preference Supplemental Set,
5-123, 5-125
vertical Cursor Coupling Mode
control function, 5-86
Vertical Tab
control function, 5-61
VT, 5-61
Warning Bell
control function, 5-114
Windowing Extension
DECHCCM, 5-85
DECPCCM, 5-87
DECRQDE/DECRPDE, 5-88
DECSCPP, 5-73
DECSLPP, 5-75
DECVCCM, 5-86
DECXCPR, 5-55
NP, 5-77
PP, 5-79
PPA, 5-81
PPB, 5-83
PPR, 5-82
SD, 5-92
SU, 5-91
EL-00070-06
VSRM -Keyboard processing
19-Apr-1988
Page 6-1
Digital Internal Use Only
DEC STD 070-6 VIDEO SYSTEMS REFERENCE MANUAL KEYBOARD PROCESSING
Document Identifier: A-DS-EL00070-06-0 Rev A, 19-Apr-1988
ABSTRACT: This specification describes the interfaces to
terminals using the Digital Standard Keyboard of 1980 (Level 1)
and the corporate standard keyboard (LK201 and future) (Level 2
and Level 3). It specifies both the coding interface between the
application program and the terminal and the human interface
between the terminal user and the keyboard.
Furthermore, the same
coding interface is provided to the application program whether it
is running in a host computer or inside a personal computer or
workstation, thereby achieving transportability of application
programs.
APPLICABILITY: Mandatory for engineers designing hardware for
terminal products and software engineers designing programs using
terminal interfaces. Additional requirements are defined in the
section on "Concepts and Conformance Criteria".
STATUS:
APPROVED 19-Apr-1988; see EL-INDEX-OO for expiration date.
+----------------------------------------------------------------+
I The material contained within this document is assumed to
I
I
I
I
I
I
I
I
define mandatory standards unless it is clearly marked as:
(a) not mandatory, or (b) guidelines. Material which is
marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there
are good reasons for non-compliance. "Guidelines" define
approaches and techniques which are considered to be good
practice, but should not be considered as requirements.
I
I
I
I
I
I
I
+----------------------------------------------------------------+
+----------------------------------------+
I The information in this publication is I
I for DIGITAL INTERNAL USE ONLY; do not I
I distribute this information to anyone I
I who is not an employee of Digital.
I
+----------------------------------------+
Digital Internal Use Only
19-Apr-1988
EL-00070-06
VSRM - Keyboard Processing
Page 6-2
TITLE: DEC STD 070-6 VIDEO SYSTEMS REFERENCE MANUAL KEYBOARD PROCESSING
DOCUMENT IDENTIFIER: A-DS-EL00070-06-0 Rev A, 19-Apr-1988
REVISION HISTORY: Original
Revision
Revision
Revision
Revision
Revision
Revision
Draft
0.1
0.2
AX01
AX11
AX12
A
FILES: User Documentation
04-Sep-1982
09-Nov-1982
14-Jan-1983
28-Feb-1983
18-Mar-1985
19-Feb-1988
19-Apr-1988
EL070S6.mem
Internal Documentation EL070S6.rno
EL070S6.rnt
EL070S6.rnx
Document Management Category:
Responsible Department:
Responsible Person:
Authors:
SMC Writer:
Terminal Interface Architecture (STI)
DSG Terminals Architecture
Peter Sichel
Peter Sichel, Ram Sudama
Patricia Winner
APPROVAL: This document, prepared by the Desktop Systems Group,
has been reviewed and recommended for approval by the
General Review Group for its category for use throughout
Digital.
B ter Conklin, Technical Director,
Desktop Systems Group
Peter Sichel, Desktop Systems Group
£lJu~
Eric Williams, Standards Process Manager
Direct requests for further information to Peter Sichel,
PK03-1/10C, DTN 223-5162, VIDEO::TERMARCH
Copies of this document can be ordered from Standards and Methods
Control, CTSl-2/D4, DTN 287-3724, JOKUR::SMC
Please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.
mDmDomD
m
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Process'ing
19-Apr-1988
Page 6-3
CONTENTS
CHAPTER 6
KEYBOARD PROCESSING
.
6-7
6-7
. 6-8
. . . 6-9
6-12
6-13
6-14
6.2
6.2.1
6.2.2
6.2.3
6.2.4
6.2.5
6.2.6
CONFORMANCE REQUIREMENTS . . . . .
Level 1 Conformance Requirements
Level 2 Conformance Requirements .
Level 3 Conformance Requirements .
Level 1 Operation . . . . . .
Level 2 And Level 3 Operation
Keyboard Character Encoding . . .
6-15
6-16
6-17
6-18
6-19
6-20
6-21
6.3
REFERENCED STANDARDS AND RELATED PUBLICATIONS 6-23
6.4
TERMINOLOGY
6.1
INTRODUCTION . . . . . . . . . . .
Keyboard Overview . . . . . . .
6.1.1
Keyboard Product Classes . . .
6.1.1.1
6.1.1.2
Keyboard Versions And Dialects
6.1. 2
Scope . . . . . . .
Relationship To TIA
6.1. 3
Coding Interface . . . . . . . .
6.1. 4
.
.
.
PHYSICAL KEYBOARD DESCRIPTION
6.5
6.5.1
.Physical Keyboard Map
Keyboard Map By Logical Key Name .
6.5.2
6.5.2.1
Application Function Key Labels
Editing Keypad Labels
6.5.2.2
6.5.2.3
Cursor Keypad Legends
6.5.2.4
Numeric Keypad Legends .
6.5.2.5
Permanent Label Strips .
6.5.3
Recommended Labeling For System Label
Strips . . . . .
. . . . . .
6.6
6.6.1
6.6.2
6.6.3
6.6.3.1
6.6.3.2
6.6.4
6.6.4.1
6.6.4.2
6.6.4.3
6.6.4.4
6.6.5
~DmDDmDTM
KEYBOARD OPERATION AND STATE THAT AFFECTS
USER INTERACTION .
Keyboard Output Silo
Keyboard Action Mode
Set/Reset Keyboard Action Mode
Auto Repeat Mode . . . . . . .
Set/Reset Auto Repeat Mode
Keys Which Do Not Auto Repeat
Auto Repeat Guidelines
Visual Indicators
Hold Screen Indicator
Lock Key Indicator . . . . .
Compose Indicator
Keyboard Lock (Wait) Indicator .
Audible Indicators . . . . . . . .
Digital Internal Use Only
6-25
6-28
6-28
6-30
6-32
6-32
6-33
6-33
6-35
6-36
6-37
6-37
6-38
6-40
6-42
6-43
6-44
6-44
6-44
6-44
6-44
6-45
EL-00070-06
VSRM - Keyboard Processing
6.6.5.1
6.6.5.2
6.6.5.3
6.6.5.3.1
19-Apr-1988
Warning Bell . . . . . . . . . . . .
Margin Bell
. . . . . . . . . . . .
Keyclick . . . . . . . . . . . . . .
Interaction Of Keyclick And Bells
KEYBOARD STATE AND OPERATING MODES THAT
AFFECT KEYBOARD ENCODING . . . . . . . . . .
VT52 And VT100 (Levell) Emulation Mode
6.7.1
VT200 (Level 2) And VT300 (Level 3)
6.7.2
Emulation Mode . . • . . . . . . . . .
C1 Transmission Mode • . . . .
6.7.3
6.7.4
Character Set Mode • . . . . . .
Set/Reset Character Set Mode
Keyboard Usage Mode
6.7.5
Set/Reset Keyboard Usage Mode
Keyboard Dialect . . . . . .
6.7.6
British Pound Sign
6.7.6.1
Page 6-4
6-45
6-45
6-46
6-47
6.7
6.8
6.8.1
6.8.2
CURSOR KEYS
. . • . .
Cursor Key Mode
. • • • .
Cursor Key Codes . • . . .
Set/Reset Cursor Key Mode
··· · ·· · ·
· · · ·
· · · ·
· · · · · · · ·
NUMERIC KEYPAD KEYS
• . . .
6.9
Keypad Application/Numeric Mode
6.9.1
6.9.1.1
Numeric Keypad Mode
6.9.1.2
Application Keypad Mode
6.9.1.3
Numeric Keypad Key Codes
6.9.2
Enter Key Operation
Set Keypad Application Mode
Set Keypad Numeric Mode
Set/Reset Numeric Keypad Mode
6-48
6-49
6-50
6-50
6-51
6-54
6-58
6-58
6-60
6-60
6-61
6-63
6-63
6-63
6-63
6-64
6-65
6.10
EDITING KEYPAD KEYS
6-69
.6.11
APPLICATION FUNCTION KEYS
6-70
6.12
LOCAL FUNCTION KEYS
. . . . . . . . . . . .
6.12.1
Hold Screen Key Operation
6.12.2
Print Screen Key Operation .
Set-Up Key Operation . . .
6.12.3
Local Function Key F4
. . . .
6.12.4
6.12.4.1
Switch Session Key Operation
6.12.4.2
Data/Talk Key Operation
6.12.4.3
F4 Operation When Not Used For Local
Function ~ . . . . . . . . . .
6.12.5
Break Key Operation . . . .
6-72
6-72
6-73
6-73
6-73
6-73
6-73
MAIN KEY ARRAY - SPECIAL KEYS AND FUNCTIONS
6.13
6.13.1
Control Key Operation . . . .
Shift Key Operation
6.13.2
6.13.3
Lock Key Operation . .
Shift Lock Operation .
6.13.3.1
6-75
6-75
6-77
6-77
6-78
momoomD™
Digital Internal Use Only
6-74
6-74
EL-00070-06
VSRM - Keyboard Processing
6.13.3.2
6.13.4
6.13.5
6.13.5.1
6.13.6
6.13.7
6.13.8
6.13.9
19-Apr-1988
Page 6-5
Caps Lock Operation
SPACE Bar Operation
Return Key Operation . .
New Line Mode
. . . .
.....
Tab Key Operation
. • .
Delete Key Operation .
. . . • •
Compose Key Operation
. • . . . . •
Non-Spacing Diacritical Keys . . . . .
6-78
6-79
6-79
6-79
6-80
6-80
6-80
6-80
MAIN KEY ARRAY - GRAPHIC CHARACTER KEYS
North American Keyboard (LK201-EE US/UK,
LK201-NA, LK201-AA)
.......
British Keyboard (LK201-EE US/UK)
6.14.2
6.14.3
British Keyboard (LK201-AE)
Flemish Keyboard (LK201-AB)
6.14.4
6.14.5
Canadian (French) Keyboard (LK201-AC)
6.14.6
Danish Keyboard (2nd, LK201-ED)
.....
Danish Keyboard (1st, LK201-AD)
. • .
6.14.7
6.14.8
Finnish Keyboard (3rd, LK201-NX) . . .
6.14.9
Finnish Keyboard (2nd, LK201-NF) . . .
6.14.10
Finnish Keyboard (1st, LK201-AF) • . .
6.14.11
Austrian/German Keyboard (2nd, LK201-NG) .
6.14.12
Austrian/German Keyboard (1st, LK201-AG) .
6.14.13
Dutch Keyboard (2nd, LK201-NH) . .
..
6.14.14
Dutch Keyboard (1st, LK201-AH) . .
..
6.14.15
Italian Keyboard (LK201-AI)
..
6.14.16
Swiss (French) Keyboard (LK201-AK) . . . .
6.14.17
·Swiss (German) Keyboard (LK201-AL) . . . .
6.14.18
Swedish Keyboard (2nd, LK201-NM) . . . . .
Swedish Keyboard (1st, LK201-AM) . . . . .
6.14.19
6.14.20
Norwegian Keyboard (2nd, LK201-EN) . . . .
6.14.21
Norwegian Keyboard (1st, LK201-AN) . . . .
6.14.22
Belgian/French Keyboard (LK201-AP).
.
6.14.23
Spanish Keyboard (LK201-AS)
.......
6.14.24
Portuguese Keyboard (LK201-AV)
..
6.14.25
DECmate/WPS Main Key Array
. . ..
6.14.25.1
English WPS- LK201- {PA, PEl .
. .
6-81
6.14
6.14.1
6.15
6.15.1
6.15.2
COMPOSE OPERATION
. . . . .
. .
Compose with The Use Of The COMPOSE Key .
Compose with The Use Of Non-Spacing
Diacritical Marks . . . . . . . . . . . .
6.15.3
Composing Arbitrary 8-bit Characters
(VT330/340 Only, Not Mandatory)
.....
6.15.4
Use Of The COMPOSE Key When A Compose Is
Already In Progress . . . . • . . . . . •
6.15.5
Use Of The DELETE Key When A Compose Is
Already In Progress . . . . . . . . . . .
6.15.6
Keystrokes Which Abort Compose Immediately
6.15.7
Keystrokes Which Do Not Affect Compose
Di rectly .
...... . . . . . . . ·
6.15.8
Order And Case within Compose Sequences
·
6.15.8.1
Order
............ . ·
~D~DDmDTM
Digital Internal Use Only
6-83
6-85
6-87
6-89
6-91
6-93
6-95
6-97
6-99
6-101
6-103
6-105
6-107
6-108
6-110
6-112
6-114
6-116
6-118
6-120
6-122
6-124
6-126
6-128
6-130
6-132
6-134
6-134
6-135
6-136
6-138
6-138
6-139
6-140
6-140
6-140
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-6
6.15.8.2
Case . . . . . . • . . . . • . • . . • .
6.15.9
Composition Conventions . . . . • . . . .
6.15.9.1
Compose Sequence Error Conditions . . .
6.15.9.2
Syntax Of Compose Sequences . • . . . .
6.15.9.2.1
Compose Sequence Processing
•
6.15.10
8-bit Characters Mode Valid Compose
Sequences • • • • • • • • • • • •
••
6.15.10.1
Compose Sequences For Characters Without
Diacritical Marks • • . . . • • • . • •
6.15.10.2
Compose Sequences For Characters With
Diacritical Marks • • • . . • • • . • •
6.15.10.3
Non-Spacing Diacritical Marks By
Keyboard • • • • • . . • • • • • . . • •
6.15.10.4
valid Compose Sequences And The
Supplemental Character Sets
. .
6.15.11
7-bit Characters Mode Valid Compose
Sequences • . • • • • . • • • • • • . • .
6.15.11.1
Typewriter Keys Valid Compose Sequences
By Keyboard (7-bit Characters) • • • • •
6.15.11.2
Typewriter Keys Non-Spacing Diacritical
Marks By Keyboard (7-bit Characters) • •
6.15.11.3
Data Processing Keys Valid Compose
Sequences • • • • • • • • • • . • •
6.15.11.4
Data Processing Keys, Non-Spacing
Diacritical Marks • . • .
. ...
6-140
6-141
6-141
6-143
6-145
6-149
6-149
6-151
6-152
6-154
6-157
6-157
6-167
6-169
6-169
6.16
CONTROL CODES AND KEYSTROKES .
·
6.17
SUMMARY OF MODES . • .
· • 6-172
6.18
6.18.1
6.18.2
6.18.3
6.18.4
6.18.5
CHANGE HISTORY • . . . •
Revision 0.0 To 0.1
Revision 0.1 To 0.2
Revision 0.2 To AX10
Revision AX10 To AXIl
Revision AXIl To AX12
mDmDomD™
Digital Internal Use Only
. 6-170
.
• •••
· .•.
• ••.
· .
· . . •
6"':173
6-173
6-176
6-179
6-181
6-183
EL-00070-06
VSRM - Keyboard Processing
6.1
19-Apr-1988
Page 6-7
INTRODUCTION
6.1.1
Keyboard Overview
The terminal interface described in this specification applies
specifically to handlin~ of the LK201 corporate standard keyboard
and all future corporate standard keyboards.
Logically, the keyboard is part of the terminal; however, it is
physically and electrically packaged separately. This
specification does not specify the interface between the keyboard
and the rest of the terminal. That interface is described in full
in the LK201 Functional Specification.
This specification describes the keyboard layouts for two
different product classes:
1.
2.
LK201- { Ax, Ex, Nx } DEC Standard Keyboard
LK201- { Bx, Fx, Px } DECmatejWPS
The physical layout is the same; only the key legends and the
Permanent Label Strip differ between the product classes.
Keyboards operate in one of two usage modes:
typewriter or data
processing which changes the meaning of a small number of keys as
indicated by dual legends on the key cap. Some keyboards are used
for both typewriter and data processing with the same legends.
Differences b~tween these modes are examined in detail in the
tables of the Main Key Array section.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.1.1.1
19-Apr-1988
Page 6-8
Keyboard Product Classes -
The Digital standard keyboard product class includes the LK201{Ax, Ex, Nx}. The "E" designation, as in LK201- Ex, is used
because letter variations for "Ax" were exhausted. The "Ex"
subfamily consists of upgraded keyboards which have a predecessor
in the "Ax" subfamily and also keyboards which are entirely new
and have no predecessor in the "Ax" subfamily. Examples of the
former are the LK201- ED, LK201- AD Danish Keyboard and the LK201EN, LK201- AN Norwegian Keyboard. Examples of keyboards with no
predecessor in the "Ax" subfamily are the LK201- EH, Greek, and
the LK201- ER Arabic Keyboards.
The LK201- Nx subfamily is for the VT300 series terminals. The
LK201- NA is unique in that it has front legends on the numeric
and editing keypads that other LK201 keyboards do not.
In detail,
the LK201- {NA, NF, NH} are to be used with the VT330/340 series
and the LK201- {NG, NM, NX} are to be used with the VT320 series
terminals.
The DECmate/WPS keyboard product class includes the LK201- {Bx,
Fx, PX}. The "F" designation, as in LK201- Fx, is used because
letter variations for "Bx" were exhausted. TheLK201- Px is used
with the VT300 series terminals.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.1.1.2
19-Apr-1988
Page 6-9
Keyboard Versions And Dialects -
The LK201 is manufactured in a number of versions to accomodate
local language and application specific requirements. These
versions differ only in the labeling of keys and visual
indicators.
To the terminal system all the keyboards will appear
identical. With the exception of the Main Key Array, the codes
transmitted by the terminal for all key positions are the same for
all versions of the keyboard and the only differences are the
languages of the legends and label strips.
Digital terminals support a number of keyboard layouts
corresponding to different keyboard versions. Within the
terminal, these different layouts are actually different mappings
from keystrokes on the main key array to character codes produced,
and are called "Keyboard Dialects".
The terminal user selects the
desired Keyboard Dialect in Set-up, usually corresponding to the
keyboard version.
It is this selection of Keyboard Dialect that
controls the characters produced for a given series of keystrokes,
not the physical keyboard layout. The names of the Keyboard
Dialects are based on the geographical region, country, or
language for which the keyboard is primarily intended.
The following is a list of the Keyboard Dialects and corresponding
keyboard versions or layouts defined within this specification.
Some of the dialects have changed to accomodate more recent
country requirements.
The most recent or recommended variation
within each dialect is listed first.
Digita1 Interna1 Use On1y
EL-00070-06
VSRM - Keyboard Processing
Keyboard Dialect
Version
North American
LK201-EE
LK201-NA
-----=------=-=-
I
I
I
I
Page 6-10
----_.".
LK201-AA
Combined U.S./U.K. (VT320, VT220CR)
Combined U.S./U.K. (VT330/VT340
with local editing legends)
1st u.S. (VT200)
British
LK201-EE
LK201-AE
Combined U.S./U.K.
1st U.K. (VT200)
Flemish (Belgium)
LK201-AB
Same as Belgian/French (LK201-AP)
Canadian (French)
LK201-AC
Danish
LK201-ED
LK201-AD
2nd Danish (VT300)
1st Danish (VT200)
Finnish
LK201-NX
LK201-NF
LK201-AF
3rd Finnish
2nd Finnish
1st Finnish
Same as 1st
Austrian/German
LK201-NG
LK201-AG
2nd Austrian/German (VT300)
1st Austrian/German
Dutch
LK201-NH
2nd Dutch (VT320)
Same as North American (LK201-EE)
1st Dutch
LK201-AH
t
19-Apr-1988
(VT320)
(VT330/VT340)
(VT200)
Swedish (LK201-AM)
Italian
LK201-AI
Swiss (French)
LK201-AK
Swiss (German)
LK201-AL
Swedish
LK201-NM
LK201-AM
2nd Swedish (VT300)
1st Swedish
Same as 1st Finnish (LK201-AF)
Norwegian
LK201-EN
LK201-AN
2nd Norwegian (VT300)
1st Norwegian
Belgian/French
LK201-AP
Same as Flemish (LK201-AB)
Spanish
LK201-AS
Portuguese
LK201-AV
mDmDomD™
Digital Internal Use Only
page 6-11
19-Apr-1988
VSRM - Keyboard processing
Notes:
1.
Many keyboards can be ordered with or without country
power cords (to form "country kits"). The following
keyboard series are generally equivalent:
W/PWR
Cord
Keyboard
Alone
Ax
Bx
Ex
Lx
Mx
Rx
-
This specification uses the keyboard with power cord
designations (most common on video terminals) wherever
possible.
2.
WPS or Gold keyboard layouts add gold legends to the
alpha-numeric layouts above. Gold layouts corr~sponding
to the keyboard versions above, where -Ax is regular, and
-Bx is WPS, are:
-BA
-BD
-BG
-BK
-BN
-PE
mDmoomo
1M
to
to
to
to
to
to
AA, -BB to AB, -BC to AC,
AD,
AG,
AK,
AN,
EE,
-BE
-BH
-BL
-BP
-PA
to
to
to
to
to
AE,
AH,
AL,
AP,
NA.
-BF
-BI
-BM
-BS
to
to
to
to
Digital Internal Use Only
AF,
AI,
AM,
AS,
EL-00070-06
VSRM - Keyboard processing
6.1.2
19-Apr-1988
Page 6-12
Scope
This specification defines the coding interface between terminals
and software application processes and the logical part of the
human interface between the keyboard and the terminal user.
The coding interface is defined to be the hardware or software
interface across which coded control functions and graphic
characters are passed. The same coding interface shall exist:
1.
2.
3.
Between a fixed function terminal and a host computer.
Between a personal computer/workstation simulating a
fixed function terminal and a host computer.
Between a personal computer/workstation and an
application program running inside the personal
computer/workstation.
By making the coding interface the same in the above three
situations, transportability of application programs is possible.
This specification also defines the logical part of the interface
between the keyboard and the terminal user not covered in any
section of DEC STD 107 Digital Standard for Terminal Keyboards and
its revisions, specifically the operation of the Compose key and
Non-Spacing Diacritical keys for all national keyboards.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.1.3
19-Apr-1988
Page 6-13
Relationship To TIA
The Keyboard Processing interface forms a service class of the
Input Processing layer of the Terminal Interface Architecture. It
is backwards compatible at the coding interface with the Level 1
Keyboard previously described in DEC STD 107-0, of which it is a
complete super set.
TERMINAL USER
* * * * * * * * * * * * * * * * * * * * * * * Human interface
I I Keyboard
II
I I Processing I I
__ =_=_=_a.a ___ ===
T
M
e
r
m
a
n
a
i
g
n
a
e
m
e
1
n
t
Input Processing
Presentation
Service Class
-----------------------------------------------
Code Extension
Layer
* * * * * * * * * * * * * * * * * * * * * * * Coding Interface
APPLICATION PROCESS
Structuring of the Terminal Interface Architecture
mDmDomo™
Digital Internal Use Only
19-Apr-1988
EL-00070-06
VSRM - Keyboard Processing
6.1.4
Page 6-14
Coding Interface
The coding interface defined within this specification applies to
both internal and external product interfaces. External
interfaces are interfaces between a terminal, personal computer or
workstation and a remote system. Internal interfaces are
interfaces between a terminal sub-system and software application
processes running within a personal computer or workstation. An
application process consists of the following software components:
terminal driver, operating system, layered application subroutine
package, and the application program. This specification does not
deal with which of these components convert the coded information
to other forms, if any, before it is processed by the application
program.
keyboard
*
**
• terminal system
host system
---------------------------**
physical
terminal
virtual
terminal
I
I application
.............. I process
*. ... .. ... .
*
*
--------------------------*
*
*
**
EXTERNAL CODING INTERFACE
keyboard
terminal
*
*
system
--------------------------*-------------*
I
* application I
* process
I
*
I
-------------~------------*-------------
firmware> *
physical
terminal
virtual
terminal
** INTERNAL CODING INTERFACE
External and Internal Terminal Coding Interfaces
mDmDDmD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.2
19-Apr-1988
Page 6-15
CONFORMANCE REQUIREMENTS
All conforming terminal keyboard implementations will provide at
least two compatibility levels, or modes of operation (part of
terminal conformance level). Levell provides backward
compatibility with previous keyboards designed in conformance with
DEC STD 107 (VT100, LA36, and so on) and provides the 7-bit ASCII
control and graphic characters. Level 2 is a compatible super set
of Levelland provides the a-bit DEC STD 169 Multinational
Character Set, the Edit.ing Keypad,and the Application Function
Keys.
Lever-3 is a compatible super set of Level 2 which offers
more flexible control over the keyboard encoding (ISO Latin
Alphabet Nr. 1, DECKBUM to switch between Typewriter and Data
Processing Mode).
A terminal conforming to Levell shall be able to transmit to a
7-bit host communication port and may optionally provide a local
Set-Up feature to transmit to an a-bit host port (with the 8th bit
always zero). A terminal conforming to Level 2 shall provide a
local Set-Up feature to transmi~ to a 7-bit or 8-bit host
communication port.
A terminal conforming to Level 2 shall be able to switch to Level
1 operation. When a Level 2 terminal is operating in Level 2 mode
and 7-bit host communication port mode, only a subset of Level 2
functionality shall be transmitted.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.2.1
19-Apr-1988
page 6-16
Level 1 Conformance Requirements
Terminals, workstations, and personal computers conforming to
Level 1:
a.
Shall implement all keys indicated in Level 1 Operation.
b.
Shall neither implement additional keys nor make
operative keys that are not part of Level 1 Operation.
c.
Shall make inoperative all keys that are part of Level 2
operation only.
d.
Shall implement the following control functions for
receipt from software application processes and as a
local Set-up feature:
1.
2.
3.
4.
e.
Auto Repeat Mode (DECARM)
Cursor Key Mode (DECCKM)
Keypad Mode (DECKPAM/DECKPNM)
Line Feed/New Line Mode - see the chapter "Character
Cell Display"
Shall implement the following control function for
receipt from software application processes:
Keyboard Action Mode (KAM)
f.
Shall implement the following local Set-up features:
Caps/Shift Lock Mode as Caps Lock Operation; may
optionally implement a local Set-up feature to change
the mode to Shift Lock Operation.
.
May optionally provide means to switch Host Port
Environment Mode to 8-bits.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.2.2
19-Apr-1988
Page 6-17
Level 2 Conformance Requirements
Terminals, workstations, and personal computers conforming to
Level 2:
a.
Shall implement all keys indicated in Level 2 Operation.
b.
Shall implement no additional keys.
c.
May implement the 8-bit Architecture Extension.
d.
May implement the NRCS Extension.
e.
Shall implement the following control function for
receipt from a software application process and as local
Set-up features:
All Levell control functions.
f.
Shall implement the following control functions for
receipt from a software application process:
1.
2.
g.
Shall implement the following local Set-up features:
1.
2.
3.
4.
mDmDomD
TM
All Levell functions.
Select Conformance Level (DECSCL) to switch between
Level 1 Operation and Level 2 Operation.
Keyclick Mode.
Caps/Shift Lock Mode. The terminal user shall be
able to set the Caps/Shift Lock Mode to either Caps
Lock Operation or Shift Lock Operation. The factory
default shall be Caps Lock operation.
May optionally implement means to disable the
"warning bell", or "margin bell" indicator as a Level
2 extension.
May optionally implement additional local Set-up
features not specified by the architecture, for
example, volume of bell, volume of keyclick.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.2.3
19-Apr-1988
Page 6-18
Level 3 Conformance Requirements
All Level 2 conformance requirements plus the following:
a.
Shall implement the 8-bit Architecture Extension.
b.
Shall implement the following control function for
receipt from a software application process and as local
Set-Up features:
Keyboard Usage Mode (DECKBUM) to select between
Typewriter and Data Processing keys.
c.
Shall implement the following control function for
receipt from a software application process:
Select Conformance Level (DECSCL) to switch between
Level 1 Operation, Level 2 Operation, and Level 3
Operation.
d.
mDmDomD
TM
May implement the Keypad Compose mechanism for "Composing
Arbitrary 8-bit Characters" described later in this
document.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.2.4
19-Apr-1988.
Page 6-19
Levell Operation
For purposes of conformance, inoperative means that the key shall
not transmit anything, and shall not keyclick.
When Level 1 operation is selected, the following restrictions
shall apply:
a.
Only 7-bit ASCII character codes shall be transmitted
with the 8th bit omitted or zero depending on whether the
host port environment is set to 7-bits versus 8-bits
respectively. Keys which would normally produce an 8-bit
code with the 8th bit set shall be inoperative.
b.
The Editing Keypad keys with generic names E1, E2, E3,
E4, ES, and E6 are inoperative.
c.
The Function keys with generic names F6, F7, F8, F9, and
FlO are inoperative.
d.
Function key with generic name F11 shall transmit the ESC
code (1/11).
e.
Function key with generic name F12 shall transmit the BS
code (0/8).
f.
Function key with generic name F13 shall transmit the LF
code· (0/10).
g.
Function keys with generic names F14, F1S, F16, F17, F18,
F19, and F20 are inoperative.
h.
The only valid Compose sequences shall be those which
generate 7-bit ASCII characteI codes. Those sequences
that would produce an 8-bit code with the 8th bit set,
shall not transmit anything, and shall echo the error
bell after the final key stroke of the sequence.
mDmDomD
TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.2.5
19-Apr-1988
Page 6-20
Level 2 And Level 3 Operation
When Level 2 or Level 3 operation is selected and the Host Port
Environment Mode is set to 8-bits, the following conditions shall
apply:
a.
All keyboard keys are live.
b.
The Function keys with generic names FII, F12, and Fl3
transmit their designated control sequences (i.e., ESC,
BS, and LF can only be generated as control character
combinations from the main key array).
c.
All valid 7-bit and 8-bit Compose sequences may be typed
by the terminal user.
d.
No additional Compose sequences for existing or new
characters may be typed by the terminal user.
When Level 2 or Level 3 operation is selected and Host Port
Environment Mode is set to 7-bits, the following conditions shall
apply:
mamDomD
o
Shall make inoperative all explicit or implied compose
sequences that would generate an 8-bit code with the 8th
bit one.
o
Shall transmit all explicit or implied compose sequences
that would generate an 8-bit code with the 8th bit zero.
1M
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.2.6
19-Apr-1988
Page 6-21
Keyboard Character Encoding
In Levell operation the keyboard shall transmit ASCII from GL, no
supplemental characters are available.
In Level 2 operation the keyboard shall transmit ASCII from GL and
the DEC Supplemental Set from GR.
If the Level 2 8-Bit Architecture Extension is supported (refer to
DEC STD 070-3 Code Extension Layer), the keyboard shall transmit
ASCII from GL ana-the User Preference Supplemental Set (UPSS, DEC
Supplemental or ISO Latin-I) from GR (same as Level 3 operation
below).
In Level 3 operation the keyboard shall transmit ASCII fromGL and
the User Preference Supplemental Set (UPSS, DEC Supplemental or
ISO Latin-I) from GR.
Level 3 terminals, and Level 2 terminals with the 8-bit
Architecture Extension, support at least two different 8-bit
multinational character encodings. Level 2 and Level 3 terminals
with the NRCS Extension also support a number of 7-bit country
specific (National) character encodings. At any time, only one of
these character encodings is in use. No character set shift
functions (SO, 51, etc.) will be transmitted as a side effect of
typing a keyboard key (except if ctrl-N or ctrl-O are explicitly
typed). The user can choose one of the following keyboard
encodings vi~ Set-Up:
- DEC Multinational (factory default)
SET-UP: 8-bit Characters, UPSS DEC Multinational
Primary keyboard set is ASCII
Supplemental keyboard set is DEC Supplemental
- ISO Latin Alphabet Nr 1
SET-UP: a-bit Characters, UPSS ISO Latin-l
Primary keyboard set is ASCII
Supplemental keyboard set is ISO Latin-l supplemental
- 7-bit ASCII character set
SET-UP: 7-bit Characters, Data Processing Keys
Primary keyboard set is ASCII
No supplemental characters available
- 7-bit National Replacement Character Set (NRCS)
SET-UP: 7-bit Characters, Typewriter Keys
Primary keyboard set is one of 12 NRCS
No supplemental characters available
The selection of a particular 7-Bit.NRCS is bound to the selection
of the keyboard dialect. See guideline under heading "Keyboard
Dialect".
In 7-bit Characters mode, choosing Data Processing Keys
always uses ASCII as the primary keyboard set.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-22
Deviation Note
Older Level 2 terminals with the NRCS Extension
did not always use ASCII as the primary keyboard
set when Data Processing Keys was selected (prior
to the VT220CR). This use of a 7-bit NRCS other
than ASCII in 7-bit Characters Data Processing
mode has been deprecated.
Explanatory Note
The character set mode, 7-bit/8-bit Characters
corresponds to National/Multinational Mode (NRCS
Extension) on the VT200 but with two
simplifications. 8-bit Characters are temporarily
disabled when in "VT100 mode", or a "7-bit host
line" is selected.
In practice, this means the terminal no longer
supports ASCII with the Typewriter Keys layout
except on the North American Keyboard. This makes
sense. The typewriter layout has no inherent
advantage when using ASCII, it simply has more
dead keys.
Confusing distinctions like VT100
Multinational mode have been eliminated.
The remainder of this specification documents keyboard behavior
with both the 8-bit Architecture and NRCS Extensions.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.3
19-Apr-1988
Page 6-23
REFERENCED STANDARDS AND RELATED PUBLICATIONS
DIGITAL STANDARDS
DEC STD 070-3
Code Extension Layer
DEC STD 070-4
Terminal Management
DEC STD 070-7
Printer Port Extension
DEC STD 070-12
Terminal Synchronization
EL-00107-00
DEC STD 107-0 Digital Standard for Terminal
Keyboards Standard Keyboard Layouts
EL-00138-00
DEC STD 138-0 Registry of Control
Functions for Character-Imaging Devices
EL-00169-00
DEC STD 169-0 Digital Standard Coded
Graphic Character Sets for Hardware
and Software
A-SP-LK200-A-0
LK200 Functional Specification
A-SP-LK201-A-2
LK201 Keyboard Design Specification
Copies of Digital Standards Can be obtained from Standards and
Methods Contral, CTS1-2/D4, DTN 287-3724, JOKUR::SMC
please provide your name, badge number, cost center, mailstop, and
ENET node when ordering.
ANSI AND ISO STANDARDS
ANSI X3.4 - 1986
American National Standard Code for
Information Interchange (ASCII character set)
ANSI X3.41 - 1974
American National Standard Code Extension
Techniques for use with the 7-Bit Coded
Character Set of the American National
Standard Code for Information Interchange
ANSI X3.64 - 1979
Additional Controls for use with American
National Standard Code for Information
Interchange
ANSI X4.23 - 1982
Keyboard Arrangement for Alphanumeric
Machines
ISO 2022-1982
Information Processing /
ISO 7-Bit and 8-Bit Coded Character Sets Code Extension Techniques
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard'Processing
19-Apr-1988
Page 6-24
ANSI AND ISO STANDARDS (continued)
ISO 6429-1982
Information Processing /
Additional controls for use with
Character Imaging Devices
ISO 8859-1:1987
Information Processing /
8-Bit Single-Byte Coded Character Sets Part 1 : ISO Latin Alphabet Nr 1
Copies of ANSI and ISO Standards can be obtained from local
Digital Libraries.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.4
19-Apr-1988
Page 6-25
TERMINOLOGY
Application Label strip - A removable label strip associated with
an application software package that runs under control of an
operating system or runs stand-alone.
Application Process - The collection of software consisting of a
terminal driver, an operating system, layered application
subroutiries or packages, and application programs running inside a
personal computer, workstation, or host computer.
Byte - A bit string that is operated on as a unit and whose size
is independent of redundancy or framing techniques. In this
specification, bytes are 7-bit or 8-bit.
Coded Character (or more simply "Character") - The coded
representation of a member of a coded character set used for the
organization, control or representation of data. Note: In ISO
and ANSI standards, the term "character" does not imply coding.
The terms "character" and "coded character" are used
interchangeably in this document. The term "legend" refers to the
unencoded character.
Coding Interface - A software or hardware interface through which
bytes of character-coded information are passed between terminal
equipment and an application process across a host port or between
terminal equipment and a printer across a printer port.
Compose Sequence - A sequence of two or three keys used to input a
single graphic character that may not be available as a single
key.
Control Character - A control function; the coded representation
of which consists of a single byte.
Control Function - An action 'that effects the recording,
processing, transmission, or interpretation of data and that has a
coded representation consisting of one or more bytes.
Non-Spacing Diacritical Key - A key with a diacritical mark as a
key legend that is used as the first key of a two-keystroke
sequence to create an accented letter.
Diacritical Mark - A symbol used in combination with the letters A
through Z or a through z to form an accented letter or umlaut.
Environment - The number of bits (7 or 8) used to transmit or
receive data across a coding interface independent of framing or
parity across a host or printer port.
~DmDDmDTM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
19-Apr-1988
Page 6-26
Explicit Compose Sequence - A three-key compose sequence starting
with the Compose key.
Graphic Character - A character, other than a control function,
that has a visual representation normally handwritten, printed, or
displayed.
Host Port - The coding interface between a terminal and an
application process whether the application process is running
inside the terminal or in a host computer.
Implied Compose Sequence - A two-key compose sequence starting
with a Non-Spacing Diacritical key.
Inoperative - A key which does not cause the terminal to take any
action or modify the effect of other keys. An inoperative key
does not transmit any bytes, and does not key click.
Key - The physical part of a keyboard that the terminal user
presses to input control and graphic character information.
Key Legend (or more simply "Legend") - The visual symbol embossed
or engraved on a key.
Key Position 10 - A standard 10 that identifies the physical
position of a key on the keyboard. Note:
taken from ANSI and ISO
keyboard standards. See DEC STD 107 which specifies the physical
interface between keyboard and the rest of the terminal.
Keyboard Dialect - A mapping from keystrokes on the main key array
to character codes produced. A supported keyboard layout
(arrangement of keycap labels) corresponding to a keyboard version
(manufactured model such as LK201-AA). The names of Keyboard
Dialects are based on the geographical region, country, or
language for which the keyboard is primarily intended (example:
North American).
Keyboard Usage Mode - One of "Typewriter" or "Data Processing".
Selects a variation of the keyboard layout intended for office or
data processing use.
Data processing legends appear to the right
of the typewriter legends on those keys where they are different.
Permanent Label Strip - A label strip that is permanently fastened
to the keyboard in manufacturing that labels the top row of keys
on the keyboard (Local Function Keys and Application Function Key
Row) .
Printer Port - The coding interface between a terminal and a
printer.
mDmDomDTM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-27
Receive - To accept coded character information from an
application process sent to a terminal across the coding
interface.
Removable Label Strip - A removable label strip that labels the
top row of keys on the keyboard (Local Function Keys and
Application Function Keys).
set-up - A mode of operation of the terminal in which the terminal
user communicates directly with the terminal to change certain
operational modes. Note: the human interface for Set-up mode is
beyond the scope of this specification; only the Set-up features
required for conformance are specified along with some optional
ones.
SPACE - A character that is both 1) a graphic character with a
visual representation consisting of the absence of a graphic
symbol and 2) a control character that acts as a format effector
that causes the active position to be advanced one character
position.
System Label Strip - A removable label strip associated with an
operating system.
Terminal User - The human user of the terminal (as distinguished
from an application process or program).
Transmit - To transfer coded character information from a terminal
to an application process across the coding interface.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.5
19-Apr-1988
Page 6-28
PHYSICAL KEYBOARD DESCRIPTION
The keyboard is broken down into six distinct functional, as well
as physical, areas. The rest of the specification is organized
according to these areas.
In the following, the key position IDs
are indicated in parentheses:
6.5.1
1.
The Main Key Array (EOO-E13, DQO-D12, C99-C13,B99-B11,
A99-A09)
2.
The Cursor Keys (B16-B18, C17)
3.
The Numeric Keypad (E20-E23, 020-023, C20-C23, B20-B22,
A20-A23)
4.
The Editing Keypad (E16-E18, 016-018)
5.
The Application Function Keys (G05-G23)
6.
The Local Function Keys (G99-G03)
Physical Keyboard Map
The physical keyboard map provides a means to identify the
physical position of keys independent of the keyboard version or
operating mode. Each key is given a physical Key Position 10.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
page 6-29·
19-Apr-1988
Keyboard Map by Physical Key Position ID
Left Half - Keyboard Position Map
I GIG I GIG I G I
I 991 001 011 021 031
Local Function Keys
I GIG I GIG I G I
I 051 061 071 081 091
I GIG I GIG I
I 111 121 131 141
•••••• Application Function Key Row •••••
I E I E I E I E I E I E I E I E I E I E I E I E I E I E
I 001 011 021 031 041 051 061 071 081 091 101 111 121 13
I
I
~----------------------------------------------------- ------
I DID I DID I DID I DID I 0 I DID I DID I
I 00 I 011 021 031 041 051 061 071 081 901 101 111 121
----------------------------------------------------------I
I C I C
I C I C I C I C I C I C I C I C I C I C I C I C I
I 991 00
I
I
I
C I
I 011 021 031 041 051 061 071 081 091 101 111 121 131
I B I B I BIB I BIB I BIB I BIB I BIB I B
I 99
I 001 011 021 031 041 051 061 071 081 091 101 11
-----I~i~~~~I~~~~~~::~~~~~e~~~~~~~~~~~~~I----------Main Key Array
Right Half - Keyboard Position Map
I GIG
I 151 16
I GIG I GIG I
_ I 20 I 211 221 231
.•..........•. Application Function Key Row (cont.) ..•.
Editing
Keypad
I E I E I E I
I 161 171 181
I E I E I E I E I
I 201 211 221 231
I DID I D I
I 161 171 181
I DID I DID I
I 201 211 221 231
I C I
I 171
I C I C I C I C I
I 201 211 221 231
-----_ .... _----Cursor
Keypad
I BIB- I B -I
I 161 171 181
I BIB I B I
I 201 211 221
------------1
I
I
mDmDomD™
Digital Internal Use Only
A
20
I
I
I
I A I A I
I 221 231
Numeric
Keypad
EL-00070 ... 06
VSRM - Keyboard Processing·
6.5.2
19-Apr-1988
Page 6-30
Keyboard Map By Logical Key Name
The following maps are provided to relate the des~ription of the
keyboard operations described in this specification to the actual
codes generated at the coding interface. These maps identify
those keys which have explicit names as legends on the key caps or
Permanent Label Strip, and leave the alpha-numeric keys blank.
The blank keys on the main array all have multiple mappings
depending on the Keyboard Dialect and Keyboard Usage Mode. The
names provided in this specification are the English equivalents,
but on the various national keyboards they are translated into
different forms. See DEC STO 107-2 when revised.
On all Permanent Label strips, the legends above the G1S and G16
keys are replaced with the legends for the four LEOs that are
physically located there or are blank for those product classes
that do not actuate ~he LED. The LED legends are Hold Screen,
Lock, Compose, and wait. On all product classes of the keyboard,
the Local Function keys and the Application Function Keys are
blank, except for the G1S and G16 keys. The following keys have
legends that depend on the keyboard product class: G1S, G16, E16,
E17, E18,D16, 017, 018, all numeric keypad keys.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
Page 6-31
19-Apr-1988
Left Half - Keyboard Named Key Map
IHldlPrniSetlF4 IBr-1
I Scr I Scr I-Up I
I eak I
IF6 IF7 IF8 IF9 IFIOI
I
I
I
I
I
I
IFllIF12IF131F141
I ESC I BS I LF I
I
Local Function Keys
.••• Application Function Key Row •••••••
1<-- I
IDeletl
I Tab I
I
I
I
I
I
I
I
I
I
I
I
I
I Ret I
I
I
I
----------------------------------------------------------I
I Ct-I Lock I
I
I
I
I
I
I
I
I
I
I
I
I
I rll
I
I
I
I
I
I
I
I
I
I Shift I
I
I
I
I
I
II
I
I
I Shift I
I
I
I
I
------------------------------------------------------------ICompose I
ICharactl
I
I
Main Key Array
Right Half - Keyboard Named Key Map
I F I F
I 151 16
I F I F I F I F I
I 171 181 191 201
•••••••••••••• Application Function Key Row (cont.) ••••
Editing
Keypad
I Ell E21 E31
I
I
I
I
IPFIPF2IPF31PF41
I
I
I
I
I
I E41 E51 E61
I
I
I
I
I 7 I 8 I 9 I - I
I
I
I
I
I
------------Cursor
Keypad
I
I
A
I
I
1<- I V I ->1
I
I
I
I
I 4 I 5 I 6 I , I
I
I
I
I
I
-----------------
11121 3 I E I
I
I
I
I N I
------------1
I
I
mDmDomD™
Digital Internal Use Only
0
T
I
I· I E I
I
I R I
Numeric
Keypad
EL-00070-06
VSRM - Keyboard Processing
6.5.2.1
19-Apr-1988
Page 6-32
Application Function Key Labels -
The Application Function Keys do not have any legends on them for
any of the keyboard product classes, except for the two keys that
have no corresponding room on the label strip for legends because
of the LED legends.
Application Function Key Legends
-------------------------------Key Id
G15
G16
6.5.2.2
DEC
Standard
DECmate/WPS
Help
Do
Help
Do
Editing Keypad Labels -
The Editing Keypads for the product classes have the following
keycap legends:
Editing Keypad Legends
---------------------Key· Id
DEC
Standard
E16
E17
E18
016
017
018
Find
Insert Here
Remove
Select
Prev Screen
Next Screen
DECmate/WPS
Find
Insert Here
Remove
Select
Prev Screen
Next Screen
Editing Keypad Front Legends
----------------------------
(Used for Local Editing Extension on VT330/VT340)
Key Id
E16
El7
E18
016
017
018
mDmDomD™
LK201- {NA, PAl
---------------
Home
Cursor
Insert/
Overstrike
CLR PAGE
Clr Field
(EDIT)
Prev
Page
Next
Page
Digital Internal Use Only
19-Apr-1988
EL-00070-06
VSRM - Keyboard Processing
6.5.2.3
Cursor Keypad Legends -
The legends for the Cursor Keypad as shown below:
Cursor Keypad Legends
--------------------Key Id
C17
B16
B17
B18
6.5.2.4
Legend
Numeric Keypad Legends -
The legends for the Numeric Keypad are shown below:
Numeric Keypad Legends
---------------------Key Id
mDmDDmD™
DEC
Standard
DECmate/WPS
----------
----------
E20
E21
E22
E23
PF1
PF2
PF3
PF4
page
Del Word
Del Char
020
021
022
023
7
8
9
(minus)
Sent
Tab Pos
Underline
Cut
(comma)
Word
Para
Bold
Paste
-
C20
C21
C22
C23
4
5
6
B20
B21
B22
1
2
3
Back Up
Line
Upper Case
A2P
A22
A23
0
Advance
Sel
Enter <>
,
. (period)
Enter
Digital Internal Use Only
Page 6-33
EL-00070-06
VSRM - Keyboard processing
19-Apr-l988
Page 6-34
Numeric Keypad Front Legends
-------------------==-======
Key Id
LK20l- {NA, PAl
E20
TAB
E2l
Insert
Line
Delete
Line
Delete
Char
(Space)
Transmit
E22
E23
C23
A23
1<----->1
*
* The VT330/VT340 provides a Set-up option which allows C23 to
transmit COMMA or SPACE (not mandatory).
This is not a local
editing feature.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.5.2.5
19-Apr-1988
page 6-35
Permanent Label strips -
The following table describes the legends on the permanent label
strips:
Permanent Label Strips
---------------------Key Id
momDomD™
DEC
Standard
DECmate/WPS
----------
----------
G99
GOO
GOI
G02
G03
FI
F2
F3
F4
F5
Hold Screen
Print Screen
Set-up
F4
Break
G05
G06
G07
G08
G09
F6
F7
F8
F9
FlO
F6
F7
F8
F9
FlO
GIl
G12
G13·
Gl4
FII
Fl2
Fl3
Fl4
FII (ESC)
Fl2 (8S)
Fl3 (LF)
F14
LED:
LED:
LED:
LED:
Hold Screen
Lock
.Compose
wait
Hold Screen
Lock
Compose
wait
G20
G21
G22
G23
Fl7
Fl8
F19
F20
Fl7
Fl8
Fl9
Hyph Push
Hyph Pull
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.5.3
19-Apr-1988
Page 6-36
Recommended Labeling For System Label Strips
The following labeling is recommended as a guideline to product
implementors in designing System Label Strips, but is not required
for conformance:
Key
Id
Legend
G99
GOO
GOl
G02
G03
Hold Screen (or Hold Session)
Print Screen (or Local Print)
Set-up
F4
Break
GOs
G06
G07
G08
G09
Interrupt
Resume
Cancel
Main Screen
Exit
G1l
G12
G13
. G14
F11 (ESC)
F12 (BS)
F13 (LF)
Additional Options
LED:
LED:
LED:
LED:
Hold Screen (or Hold Session)
Lock
Compose
wait
G20
G21
G22
G23
F17
F18
F19
F20
Notes
1.
GOO is labelled "Local Print" on the VT330/VT340 since
these terminals can support two sessions with windows on
the screen at one time. Local Print in this case may
print the logical display (virtual screen) for one
session which is not the same as the physical screen.
2.
G02 (F4) is labelled "Switch Session" on the VT330/VT340.
3.
G02 (F4) is labelled "Data/Talk" on the VT200 series for
use with an integral modem option.
mDmDomD
TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.6
19-Apr-1988
Page 6-37
KEYBOARD OPERATION AND STATE THAT AFFECTS USER INTERACTION
This section describes those functions and state that pertain to
all keyboard areas and affect user interaction with the keyboard
(but not keyboard encoding). Subsequent sections describe
functions and state that pertain to particular keyboard areas or
modify the cod~s transmitted by keystrokes.
The keyboard is sensitive to the following operating modes that
affect user interaction:
Keyboard Action Mode (KAM): locked or unlocked. When
locked, all but the local function keys F1-FS are
disabled.
Preference modes of Auto Repeat, Keyc1ick, Margin Bell,
and Warning Bell. Choices are Enable, or Disable.
6.6.1
Keyboard Output Silo
The terminal shall maintain a silo for keyboard output.
In the
event that the keyboard produces characters faster than they can
be transmitted by the terminal, the silo shall buffer at least 9
keystrokes. Note that function keys may produce up to five bytes
per keystroke; while alpha-numeric input will produce only one
byte.
For the purpose of buffering, a compose sequence will be
treated as a single keystroke and shall use only one silo
position. Therefore function keys, composed sequences, and
alpha-numeric input will each take one silo position per
occurrence.
(Guideline: the VT320 provides a 25 keystroke silo.)
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.6.2
19-Apr-1988
Page 6-38
Keyboard Action Mode
The keyboard shall lock when one of the following conditions
occur:
o
The keyboard output silo is full.
o
Keyboard Action Mode (KAM) is placed in the set state by
execution of a SM (SET MODE) control sequence.
When the keyboard is locked, the Wait indicator is turned on, and
all keyboard keys except F1, F2, F3, F4 and F5, that is, the local
function keys, are disabled.
F5, break, may be disabled by other
means and is unaffected by setting or resetting KAM. Entering
Set-up unlocks the keyboard for the time the terminal is in
Set-up, then upon exiting Set-up the keyboard is locked again,
unless the terminal user had explicitly executed a control
function that unlocks the keyboard.
The keyboard will unlock when one of the following conditions
occur and the keyboard output silo is not full:
1.
The keyboard output silo has been partially emptied
(while KAM is in the reset (unlocked) state).
2.
Keyboard Action Mode (KAM) is placed in the reset state
by execution of a RM (RESET MODE) control sequence.
3.
The SELECT CONFORMANCE LEVEL (DECSCL) control sequence is
executed (any level selected by the parameter).
4.
The RESET TO INITIAL STATE (RIS) control function is
executed.
5.
The power up self-test is executed.
6.
Entering Set-up in Levell.
7.
Executing Clear Comm or Reset Terminal in Set-Up.
8.
The SOFT TERMINAL RESET (DECSTR) control sequence is
executed.
mDmDDmD
TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
SET/RESET KEYBOARD ACTION MODE
Levels:
Page 6-39
KAM
1, 2
Purpose:
Lock or unlock the entire keyboard.
Set r,ormat:
Reset Format:
CSI
2
h
9/11
3/2
6/8
CSI
2
1
9/11
3/2
6/12
Description:
The KAM control is used to set or reset the state
of Keyboard Action Mode. When Keyboard Action Mode is reset
(Unlocked), all keys on the keyboard transmit their defined codes
or codes sequences~ When Keyboard Action Mode is set (locked),
the entire keyboard shall not transmit any codes and shall not
keyclick, if enabled, until the state is reset.
State Affected:
KEYBOARD ACTION MODE:
(UNLOCKED,LOCKED);
Algorithm:
PROCEDURE SET_KEYBOARD_ACTION_MODE;
BEGIN
KEYBOARD ACTION MODE:- LOCKED;
END;
PROCEDURE RESET_KEYBOARD_ACTION_MODE;
BEGIN
KEYBOARD ACTION MODE:- UNLOCKED;
END;
Known Deviations:
This control is ignored by the VT100 and VT12S.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.6.3
19-Apr-1988
page 6-40
Auto Repeat Mode
The terminal shall provide the ability to select whether the
keyboard keys will automatically transmit codes at a periodic rate
when held down [set state] or will transmit only one code each
time they are depressed [reset state].
Auto-repeat can be disabled or set to a variable rate as a Set-up
feature.
(Note: Provision of variable auto-repeat rates is an
option, and is not required for conformance.) One of the rates
provided shall be 30 keystrokes per second, continuous. Keys
which can auto-repeat will start auto-repeating within ~ second of
the time the initial key depression occurs.
If the control
sequence to turn auto-repeat off (DECARM) is received while an
auto-repeat is in progress, the key will stop auto-repeating.
If
the control sequence to turn auto-repeat on is received when a key
which had previously been auto-repeating is still held down, the
key will immediately auto-repeat without delay.
Except for the
above, the effect of auto-repeating a key shall be the same as
pushing the key a number of times. While any key is auto
repeating, the affect of shift or control apply immediately. No
new "start-up delay" results.
Note
The interval between the time the DECARM control
is received and the time a key which was already
auto--repeating actually stops repeating is
UNDEFINED, and should not be depended upon by
conforming software. For the purpose of testing
complIance with the architecture, auto-repeat must
stop within five seconds of receiving the DECARM
control when the terminal is processing host
output (not blocked by hold screen or alternate
session) .
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
SET/RESET AUTO REPEAT MODE
DECARM
Levels:
1, 2
Purpose:
Turn auto-repeating of keys on and off.
Set Format:
Reset Format:
CSI
9/11
?
CSI
9/11
?
3/15
3/15
Page 6-41
8
3/8
h
6/8
8
3/8
I
6/12
Description:
The DECARM control is used to set or reset the
state of Auto Repeat Mode. When Auto Repeat Mode is reset
(Repeat Off), none of the keyboard keys will auto repeat as a
result of being held down. When Auto Repeat Mode is set
(Repeat On) certain keys will repeat at a fixed rate as a result
of being held down (see description above).
NOTE
Auto Repeat Mode is a User Preference Feature and
should only be used by conforming software in
response to explicit requests of the terminal
user.
State Affected:
AUTO REPEAT MODE: (REPEAT_OFF,REPEAT_ON);
Algorithm:
PROCEDURE SET_AUTO_REPEAT_MODE;
BEGIN
AUTO REPEAT MODE:- REPEAT_ON;
END;
PROCEDURE RESET_AUTO_REPEAT_MODE;
BEGIN
AUTO REPEAT MODE:- REPEAT_OFF;
END;
Known Deviations:
mDmDomo
TM
None
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.6.3.1
19-Apr-1988
Page. 6-42
Keys Which Do Not Auto Repeat -
All keys that transmit bytes across the coding interface shall be
auto-repeatable, with the exception of the Return and Escape key.
Only keys that do not t.ransmi timmediately shall not auto-repeat.
The keys that do not auto-repeat are:
1.
Return Key
2.
Escape Key
3.
The Local Function Keys
4.
Control key by itself (control characters auto-repeat)
5.
Shift key by itself (shifted characters auto-repeat)
6.
Lock
7.
Compose
8.
Non-Spacing Diacritical keys
9.
Keys in an explicit or implied compose sequence
momDomo
1M
Digita~
Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.6.3.2
19-Apr-1988
Page 6-43
Auto Repeat Guidelines -
In order to give a constant repeat rate at each transmission
speed, the speed of auto repeat is a function of the Host Transmit
Speed. At speeds of 2400 Baud or above, all keys will auto repeat
at 30 keystrokes per second.
The following table is provided as a guideline and is not required
for conformance.
For the purpose of auto repeat, the keyboard is separated into
three groups:
1.
2.
3.
Group A - Main typing array
Group B - Cursor keys and numeric keypad keys
Group C - Top row function keys and editing keys
Ev~ry key in each group will auto repeat at the fixed
rate set by
the transmit speed, regardless of how many codes the key actually
transmits.
Auto Repeat Rates
Host Port
transmit Speed
2400 Baud or above
1200
600
300
150
110
75
Group A
Group B
Group C
30 keys/sec
30
30
30
13
10
30 keys/sec
30
20
10
6
6
30 keys/sec
24
12
6
6
6
6
6
6
These repeat rates assume that an 8-bit character is used, either
8-bit data with no parity, or 7-bit data plus a parity bit. Also
for speeds of 300 baud or above 1 stop bit is assumed, for 150
baud or below, 2 stop bits are assumed. other settings of these
parameters will not change the repeat rate, however selecting
8-bits plus parity and/or 2 stop bits will, in some cases, cause a
slight irregularity in the repeat rate as the keyboard transmit
silo fills up. The "Limited Transmit" feature will not affect
auto repeat rates 7 since all five codes can be transmitted at the
limited speed of 150 characters per second.
In local mode, keys
will auto repeat at 30 keystrokes per second.
mDmnomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.6.4
19-Apr-1988
Page 6-44
Visual Indicators
6.6.4.1
Hold Screen Indicator -
The Hold Screen LED will be lit whenever the screen image (or
display of one or more sessions) is being held.
It will be off
whenever the screen is not being held. When the HOLD SCREEN (HOLD
SESSION) key is pressed the LED shall toggle along with the
function.
6.6.4.2
Lock Key Indicator -
The LOCK LED lights whenever the Shift Lock mode or Caps Lock mode
is in effect. The LED will toggle along with the corresponding
mode.
If a Shift Lock keyboard is selected in Set-up, Shift Lock mode is
turned on by pressing the LOCK key, and turned off by pressing
either the LOCK key or a SHIFT key.
If a Caps Lock keyboard is
selected in Set-Up: Caps Lock mode is toggled on or off by
pressing the LOCK key.
6.6.4.3
Compose Indicator -
The COMPOSE LED is turned on at the start of a compose. A compose
is initiated either by typing the Compose Key or by typing a
non-spacing diacritical mark.
It remains on until one of the
following occurs:
1.
The character has been composed.
2.
An error occurs.
3.
The delete key is pressed.
Errors during compose terminate the compose and turn off the LED.
6.6.4.4
Keyboard Lock (Wait) Indicator -
The Wait LED lights when· the keyboard is locked either because of
data overrun (XOFF synchronization control code received from the
host) or because of receipt of the control sequence which locks
the keyboard (KAM). The LED is off whenever the keyboard is not
locked.
If th~ keyboard is locked during a compose, the compose
is suspended until the keyboard is unlocked or until an action,
such as enter Set-Up, is taken.
Digital Internal Use Only
EL-000~0-06
19-Apr-l988
Page 6-45
VSRM - Keyboard Processing
6.6.5
Audible Indicators
6.6.5.1
Warning Bell -
The Warning Bell will be sounded (if it is enabled in Set-up)
whenever one of the following occur:
a.
b.
c.
A CTRL-G (BEL) is received by the terminal - ring when
the character would have gone to the screen had it been
printable.
When a compose error is made.
When the margin is reached (subject to Set-Up).
Closely spaced bell codes will be sounded individually at a rate
of 4-5 per second. As bell characters arrive, they are stored in
a bell buffer until they can be sounded. The bell buffer will
have 10 entries.
If the bell buffer fills, additional bell
characters will be discarded until there is space in the bell
buffer.
No control function is provided to enable/disable the Warning Bell
from the host. It may be possible to change the volume of the
warning Bell, or disable it entirely, as a local Set-up function
(not mandatory).
6.6.5.2
Marg·in Be11-
The Margin Bell is set to RING ENABLED when the all of the
following conditions are true:
1.
2.
Margin Bell is enabled in Set-Up ("Margin Bell").
A "normal keystroke" is typed (while not in SET~UP mode).
NOTE
In this context, a normal keystroke is any
keystroke which does not generate one of the
following characters as the first character:
ESC, CSI, DCS. A COMPOSE is a "normal keystroke"
(even though it is 2 or 3 keystrokes) since it
results in one displayable character. Examples
of normal keystrokes are "A", "a" and "COMPOSE e
," «e'», and (usually) the UDKs (i.e.
Shift-F6).
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-46
The Margin Bell is rung under the following conditions:
a.
b.
The MARGIN BELL is RING ENABLED.
Any character is printed to the screen which causes the
cursor to move from a column -< (RIGHT MARGIN - 8) to any
column on the same line> (RIGHT MARGIN - 8). Note
horizontal positioning controls do not ring the bell or
affect whether the bell is ring enabled (these characters
are not "printed" to the screen).
The Margin Bell is set to RING DISABLED when:
1.
2.
3.
4.
Margin Bell is disabled in Set-up ("No Margin Bell").
The Margin Bell has been rung.
The cursor moves to a new line.
The terminal is in Set-Up
The MARGIN BELL conditions described above are dynamic.
of this the following might occur:
Because
with the cursor at column RIGHT MARGIN - 8 an 'A' (or any normal
keystroke) is typed, thus setting the MARGIN BELL to RING ENABLED
(assuming that Margin Bell is enabled in Set-Up).
A linefeed is now sent to the screen which will leave the cursor
in column RIGHT MARGIN - 8 but on the next line. This will cause
the the Margin Bell to be set to RING DISABLED.
The 'A' is now sent to the screen causing the cursor to move from
RIGHT MARGIN - 8 to RIGHT MARGIN - 7, but the MARGIN BELL does not
ring because it is RING DISABLED.
Had the 'A' been sent to the screen before the linefeed, the
MARGIN BELL would have rung.
It depends on the status of RING
ENABLED/DISABLED at the instant the other condition for ringing
the Margin Bell is satisfied.
No control function is provided to enable/disable the Margin Bell
from the host.
It may be possible to change the volume of the
Margin Bell, or disable it entirely, as a local Set-up function
(not mandatory).
6.6.5.3
Keyclick-
Keyclick may be enabled or disabled in Set-Up.
If Keyclick is
enabled, the keyboard will "click" once for each depression of a
key.
If a key is auto-repeating, the click will occur once for
each key sent, (that is, once for each alphabetic character and
once for each control sequence from a function· key).
The keyclick
shall be synchronized with the actual keystroke or auto-repeat
rate. All keys which transmit codes or cause the terminal to take
some immediate action click.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-47
set-up, Hold Screen, Lock, and Compose all click since they invoke
immediate actions (Lock and Compose change the input mode). The
Shift key will click if exiting the Shift Lock state, otherwise it
does not click. The Shift (except for the above noted exception)
and the Control keys do not click since these keys do not cause
any immediate action by themselves, but are intended to be pressed
in conjunction with another key.
Keys that form invalid control
combinations do not click. Keys which are inoperative due to
Level 1 operation or because the Host Port Environment Mode is
7-bits also do not click.
No control function is provided to affect the state of keyclick
from the host.
It may be possible to change the volume of the
keyclick sound, or disable it entirely, as a local Set-up function
(not mandatory).
6.6.5.3.1 Interaction Of Keyclick And Bells - If a keyclick and a
bell are generated by the same action, for example typing the
second character in some invalid compose sequences, then either
bell (Warning or Margin) takes precedence over the keyclick, and
the keyclick is not generated.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.7
19-Apr-1988
Page 6-48
KEYBOARD STATE AND OPERATING MODES THAT AFFECT KEYBOARD
ENCODING
The keyboard is sensitive to the following operating modes that
affect what codes are transmitted:
Emulation mode: Primarily affects codes transmitted by
function keys: One of VTS2, VT100 or VT300.
Cl Transmission mode: Affects how Cl controls are.
transmitted. One of "7-bit controls", or "8-bit
controls".
Character Set Mode: Primarily affects keyboard encoding.
Choices are "7-bit Characters", or "8-bit Characters".
User Preference Supplemental Set (UPSS): Determines
keyboard supplemental set when 8-bit characters are
enabled. Also establishes initial supplemental set for
display (defaults to G2 on power-up), and allows one
level of software indirection for designating
supplemental character sets. Choices are "DEC
Supplemental" or "ISO Latin-I".
Keyboard Dialect: Primarily affects keyboard layout by
specifying which country keyboard to use. When 7-bit
Characters and Typewriter mode are in effect, the
Keyboard Dialect also selects the corresponding National
Replacement Character Set.
Keyboard Usage Mode: Primarily affects keyboard layout.
In 7-bit Characters mode, also affects character
encoding. Choices are "Data Processing Keys" or
"Typewriter Keys".
Host line environment: Establishes frame size for
character transmission. May restrict terminal to 7-bit
characters. Choices are "7-bit host line", or "8-bit
host line".
Lock key mode:
One of Caps Lock or Shift Lock.
BackArrow key mode:
mandatory).
One of Delete or Backspace (not
Set-Up feature to disable break. Choices are Break, or
No Break. Disables generating break signal when Break
Key alone is pressed. Does not affect Shift-Break, or
Control-Break.
Set-Up feature to disable Compose key (not mandatory).
Does not disable auto-compose sequences which do not use
the Compose key.
Set-Up feature to remap shifted comma and period to send
< and> (not mandatory).
mDmDomD™
Digita~
Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-49
set-up feature to remap <> key to send ,- (not
manda to ry) .
set-up feature to remap ,- key to send ESC (not
manda to ry) •
Set-up feature to remap KP, (keypad comma) to send SPACE
(not mandatory).
Cursor Key Mode: selects between having the four cursor
(arrow) keys transmit ANSI standard cursor movement
escape sequences, or Application Function Codes. See
"Cursor Keys" section below.
Numeric Keypad Mode: selects between having the
auxiliary keypad keys transmit ASCII decimal digits (3/0
to 3/9) 'Numeric' mode, or application control functions
'Application Mode'. See "Numeric Keypad Keys" section
below.
6.7.1
VTS2 And VT100 (Levell) Emulation Mode
In VTS2 and VT100 Emulation modes, the following restrictions
apply to the keyboard. Keys which are dead are completely ignored
by the terminal. They do not click, transmit any code, or cause
the terminal to perform any action. The keys are referred to by
their names. See the "Named Key Map".
a.
Only 7-bit character codes may be produced. This
restricts DEC Multinational and ISO Latin-1 to their
7-bit ASCII subset.
The six "Edit Keys" E1, E2, E3, E4, ES, and E6 are dead.
Function Keys F6, F7, F8, F9, and FlO are dead.
Function Key F11 will transmit ESC. This key will not
auto-repeat.
Function Key F12 will transmit BS
Function Key F13 will transmit LF
Function Keys F14, F1S, F16, F17, F18, F19, and F20 are
dead.
There will be no eight bit characters generated. Keys
which would normally produce an 8-bit code will be dead
(exception is British pound sign which transmits 10/3 in
8-bits, and shall transmit 2/3 for VT100 compatibility).
Compose will work only to produce 7-bit codes. Any
attempt to compose an 8-bit code will result in the
compose error recovery.
Eight bit control characters (Cl characters) cannot be
generated.
b.
c.
d.
e.
f.
g.
h.
i.
j.
mDmDomD
1M
Digital Internal Use Only
EL-OQ070-06
VSRM - Keyboard Processing
6.7.2
19-Apr-1988
Page 6-50
VT200 (Level 2) And VT300 (Level 3) Emulation Mode
All function keys are live. The Function Keys, including FIl,
F12, and Fl3 all transmit control sequences. ESC, BS, and LF are
not available on Fll, Fl2, and Fl3. BS may be available if
Backspace mode of Backarrow key is selected.
If the host line
environment is 8-bits, the full repertoire of currently selected
character encodings is available.
If the host line environment is
7-bits, there are restrictions:
a.
Functions keys and other 8-bit controls are sent using
ESC Fe sequences instead of CSI sequences, regardless of
the Cl Transmission Mode.
Only the 7-bit ASCII subset of DEC Multinational or ISO
Latin-l may be generated. Keystrokes that would produce
8-bit codes are dead. Compose only works when used to
produce 7-bit'codes.
b.
Local mode operation is never subject to the restrictions of the
7-bit host line environment.
6.7.3
Cl Transmission Mode
This mode selects how Cl controls are transmitted in Level 2 or
Level 3.
"7-bit Controls" forces all function keys and other Cl
controls to be sent in their 7~bit format as ESC Fe sequences.
"a-bit Cont~ols" causes Cl controls to be sent in their a-bit
format (from columns 8 and 9 in the c0ge table) when operating in
Level 2 or Level 3, 8-bit Characters. If the host line
environment is 7-bits, CI controls are restricted to their 7-bit
format regardless of the CI Transmission mode.
The following control functions can also be used to set the Cl
Transmission mode.
S7CIT - Select 7-bit Cl Transmission
ESC 2/0 4/6 (ESC SPF)
S8CIT - Select a-bit Cl Transmission
ESC 2/0 4/7 (ESC SP G)
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.7.4
19-Apr-1988
Page 6-51
Character Set Mode
The Character Set Mode selects between "8-bit Characters" or
"7-bit Characters" for keyboard character encoding.
When 8-bit Characters is selected, the keyboard will transmit
8-bit graphic characters as ASCII from GL and either DEC
Supplemental or ISO Latin-1 supplemental from GR. The use of DEC
Supplemental or ISO Latin-1 supplemental is determined by the User
Preference Supplemental Set (UPSS). Note: If the host line
environment is set to 7-bits, the keyboard is restricted to 7-bit
Characters.
When 7-bit Characters is selected, the keyboard shall only
generate 7-bit characters. All attempts to generate 8-bit codes
when in 7-bits (such as COMPOSE sequences) will fail.
The
keyboard character set is determined by the Keyboard Usage Mode
(Typewriter or Data Processing), and Keyboard Dialect. See below.
Explanatory Note
The character set mode, 7-bit/8-bit Characters
corresponds to National/Multinational Mode on the
VT200 but with two simplifications. a-bit
Characters are temporarily disabled when in "vT100
mode", or a "7-bit host line" is selected.
In
practice, this means the terminal no longer
suppo~ts ASCII with the Typewriter Keys layout
except on the North American Keyboard.
This makes
sense. The typewriter layout has no inherent
advantage when using ASCII, it simply has more
dead keys. Confusing distinctions like VT100
Multinational mode have been eliminated.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-52
SET/RESET CHARACTER SET MODE
DECNRCM
Levels:
2x, 3x
Purpose:
Select 7-bit or 8-bit Characters for keyboard encoding
Set Format:
Reset Format:
CSI
9/11
3/15
CSI
9/11
3/15
?
?
4
3/4
2
3/2
h
6/8
(7-bit Characters)
(National)
4
3/4
2
3/2
1
(8-bit Characters)
(Multinational)
6/12
Description: The DECNRCM control is used to select between 7-bit
or 8-bit Character sets for keyboard encoding. Note: Setting
this mode has the side effect of resetting the display character
sets to their default state, i.e.
the state at power-on or reset.
State Affected:
CHARACTER SET MODE:
(EIGHT BITS, SEVEN BITS);
R CHARACTER SET MODE: (EIGHT-BITS, SEVEN-BITS);
(* used to keep track of character set-mode
when a restrictive condition (7-bit Host Lirie,
or VT100 mode) is in effect. *)
IN USE TABLE
DESIGNATED GRAPHIC SETS
Algorithm:
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
PROCEDURE SET_CHARACTER_SET_MODE;
BEGIN
CHARACTER SET MODE:= SEVEN BITS;
(* keep track-of mode if there are restrictions in effect *)
R CHARACTER SET MODE:- SEVEN BITS;
IF KEYBOARD-USAGE MODE - TYPEWRITER THEN
BEGIN
IN USE TABLE.GL:a NRCS LIST[KEYBOARD DIALECT];
IN-USE-TABLE.GR:= NRCS-LIST[KEYBOARD-DIALECT];;
DESIGNATED GRAPHIC SETS[GO]:- NRCS LIST[KEYBOARD DIALECT];
DESIGNATED-GRAPHIC-SETS[G1]:= NRCS-LIST[KEYBOARD-DIALECT];
DESIGNATED-GRAPHIC-SETS[G2]:- NRCS-LIST[KEYBOARD-DIALECT];
DESIGNATED-GRAPHIC-SETS[G3]:= NRCS-LIST[KEYBOARD-DIALECT];
END;
ELSE
(* keyboard usage mode is Data Processing *)
BEGIN
IN_USE_TABLE.GL:= ASCII_G;
IN USE TABLE.GR:= ASCII G:
DESIGNATED GRAPHIC SETSTGO]:= ASCII G;
DESIGNATED-GRAPHIC-SETS[G1]:= ASCII-G;
DESIGNATED=GRAPHI()ETS[G2]:= ASCII=G;
mDmDomD™ _
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-53
DESIGNATED_GRAPHIC_SETS[G3):= ASCII_G;
END;
END;
PROCEDURE RESET_CHARACTER_SET_MODE;
BEGIN
CASE CONFORMANCE LEVEL OF
(* keep track of-mode if there are restrictions in effect *)
R CHARACTER SET MODE:- EIGHT BITS;
(* ignore if 7-bit host line-or VT100 mode *)
IF (ENVIRONMENT TYPE <> SEVEN BITS) AND
(CONFORMANCE-LEVEL <> LEVEL 1) THEN
BEGIN
CHARACTER SET MODE:= EIGHT BITS;
IN USE TABLE.GL:= ASCII G;IN-USE-TABLE.GR:= UPSS G;
DESIGNATED GRAPHIC SETS[GO):- ASCII G;
DESIGNATED-GRAPHIC-SETS[G1):- ASCII-G;
DESIGNATED-GRAPHIC-SETS[G2):- UPSS G;
DESIGNATED-GRAPHIC-SETS[G3):- ~PSS=G;
END;
END;
Known Deviations:
mDmDomD
TM
None
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard
6.7.5
19-Apr-1988
Page 6-54
proc~ssing
Keyboard Usage .Mode
Each version of the keyboard is oriented toward a particular
language and/or country. The North American version, for example,
has all 94 characters of ASCII on separate keys. Therefore,
compose sequences are not needed to transmit ASCII characters,
only to transmit Supplemental characters. Many of the keyboards
have one or more keys which generate different characters
depending on whether the keyboard is set to Data Processing mode
or Typewriter mode (for data processing versus office use). The
data processing legends appear to the right of the typewriter
legends, if different. When in Data Processing mode, these keys
generate the character codes for the data processing legends.
When in Typewriter mode, these keys ~enerate character codes for
their typewriter legends.
When the terminal is in 7-bit Characters Mode, selecting Data
Processing Keys also selects the ASCII character set instead of
the National Replacement Character Set (NRCS) corresponding to the
Keyboard Dialect, as would be the case if Typewriter keys were
selected.
The keyboard usage mode is selectable from Set-up, or by host
control function (DECKBUM) in Level 3.
The tables later in this section list all the keys and characters
produced for each mode. The following list summarizes the Data
Processing ch"aracters by key posi tion for each country keyboard.
The most recent or recommended variation for each dialect is
listed first. Note this list applies to the Keyboard Dialect
(keyboard mapping tables) chosen in Set-Up, not the physical
keyboards.
1.
North American - none
2.
British (LK20l-EE US/UK)
E03 has "i"
3.
British (LK20l-AE)
E03 has "i"
Dll has "\."
4.
Flemish (Belgium)
E06 has II [ II
E07 has " ] "
Cll has "\."
5.
Canadian (French)
Dll has II ] II and "["
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.
Danish (2nd, LK201-EO)
EOa has "@"
E03 has "i"
011 has "}" and "]"
e1a has "{" and "["
ell has "1" and "\"
7.
Danish (1st, LK201-AO)
E03 has "@"
011 has "]" and "["
ell has "i" and "\"
8.
Finnish
E03 has
011 has
012 has
e1a has
ell has
19-Apr-1988 .
page 6-55
(3rd, LK201-NX)
"i"
"}"
,,-It
"I"
"{"
and " ] "
and "All
and "\"
and II [ "
9.
Finnish (2nd, LK201-NF)
E03 has "@"
011 has II ] II and II [ II
012 has "i" and "\"
10.
Finnish (1st, LK201-AF)
E03 has "@"
011 has II ] " and II [ II
012 'has "i" and "\"
11.
Austrian/German (2nd, LK201-NG)
Ell has "I"
011 has "@" and "\"
e10 has II } " and II { II
ell has II ] " and " [ "
12.
Austrian/German (1st, LK201-AG)
011 has "@" and "\"
ell has "]" and "["
13.
Dutch (2nd, LK201-NH equivalent to LK201-EE) - none
14.
Dutch (1st, LK201-AH)
E02 has "["
E03 has "]"
E10 has "\"
15.
Italian
E01 has
E02 has
E09 has
E10 has
e12 has
~DmDDmDTM
"@"
"i"
"["
"]"
"\"
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
16.
swiss (French)
E04 has "@"
011 has .,\.,
e10 has ., [ .,
ell has ., ] "
e12 has "i"
17.
Swiss (German)
E04 has "@"
011 has "\"
e10 has " [ "
ell has " ] "
e12 has "i"
18.
Swedish
E03 has
011 has
012 has
e10 has
ell has
(2nd, LK201-NM)
"@"
" ] " and " [ "
"i" and "\"
"}" and "{"
Swedish
E03 has
011 has
012 has
"@"
19.
20.
"I"
(1st, LK201-AM)
" J" and " [ "
"i" and "\"
Norwegian (2nd,
011 has "}" and
e10 has "I" and
ell has "{ " and
LK201-EN)
"]"
"\"
"[ "
21.
Norwegian (1st, LK201-AN)
E03 has "@"
011 has " J " and " [ "
ell has "i" and "\"
22.
Belgian/French
E06 has " [ .,
E07 has ."]"
ell has "\"
23.
Spanish
EOO has "@" and "\"
E12 has " ] " and " [ "
24.
Portuguese - none
mDmDomD™
Digital Internal Use Only
page 6-56
EL-00070-06
VSRM - Keyboard processing
19-Apr-1988
Page 6-57
SET/RESET KEYBOARD USAGE MODE
DECKBUM
Levels:
2x, 3
Purpose:
Select Data Processing or Typewriter Keys mode.
Set Format:
Reset Format:
CSI
9/11
3/15
CSI
9/11
3/15
?
?
6
3/6
8
3/8
h
6/8
6
3/6
8
3/8
1
(Typewriter)
6/12
(D.P.)
Description: The DECKBUM control is used to select between Data
Processing or Typewriter Keys mode.
Note:
Keyboard Usage Mode is a User Preference Feature and
should only be used by conforming software in response to
explicit requests of the terminal user.
State Affected:
KEYBOARD USAGE MODE:
(TYPEWRITER_KEYS,DATA_PROCESSING_KEYS);
Algorithm:
PROCEDURE SET_KEYBOARD_USAGE_MODE;
BEGIN
KEYBOARD USAGE MODE:= DATA PROCESSING_KEYS;
END;
PROCEDURE RESET_KEYBOARD_USAGE_MODE;
BEGIN
KEYBOARD USAGE MODE:- TYPEWRITER_KEYS;
END;
Known Deviations:
mDmDomD
1M
None
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Proce,ssing
6.7.6
19-Apr-1988
Page 6-58
Keyboard Dialect
The Keyboard Dialect primarily effects the keyboard -layout by
specifying which country keyboard to use. When 7-bit Characters
and Typewriter mode are in effect, the Keyboard Dialect also
sele'cts the corresponding National Replacement Character Set (new
for Level 3).
When 7~bit Characters and Typewriter Keys mode are selected, the
terminal generates characters from the current National
Replacement Character Set (NRCS) determined by the Keyboard
Dialect. This applies in all emulation modes: VT52, VT100 (Level
1), and VT200 (Level 2). NRCS are by definition 7-bit sets, thus
only 7-bit codes will be generated. Additional compose sequences
are available in this mode to generate characters that are in the
current NRCS but not on the corresponding country keyboard.
Guideline: On the VT320, the national replacement character set
for each keyboard is as follows:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
North American - 7-bit Characters mode is not available.
(ASCII is the left hand graphic set for both DEC
Multinational and ISO Latin-1)
Flemish -'French NRCS/AFNOR NF Z 62-010 [1973]
Canadian (French) - DEC French Canadian NRCS
British - British NRCS/BS 4730
Danish - Norwegian/Danish NRCS 3/NS 4551-1, DS 2089
Finnish - DEC Finnish NRCS
Austrian/German - GetmanNRCS/DIN 66 003
Dutch - 7-bit Characters mode is not available (same as
North American).
Italian - ISO Italian NRCS
Swiss (French) - DEC Swiss NRCS
Swiss (German)- DEC Swiss NRCS
Swedish - DEC Swedish NRCS
Norwegian - Norwegian/Danish NRCS 3/NS 4551-1, DS 2089
Belgian/French - French NRCS/AFNOR NF Z 62-010 [1973]
Spanish - ISO Spanish NRCS
Portuguese - DEC Portuguese NRCS
For more information on character sets and coding, refer to DEC
STD 169 Digital Standard Coded Graphic Character Sets for HardWare
and SOftware.
---- ---
6.7.6.1
British Pound Sign -
The North American keyboard dialect differs from the British
keyboard dialect only in the meaning of the Shift-3 (E03) key.
single keyboard model (LK201-EE) accomodates both of these
keyboard dialects.
A
When "North American Keyboard" is selected, the Shift-3 key always
sends 2/3 ("i" from ASCII character set).
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-59
When "British Keyboard" is selected, the setting of Character Set
Mode, 8-bit Characters/7-bit Characters (DECNRCM) determines
whether the British Pound Sign character is sent as 10/3 or 2/3.
In the former case, from the DEC (or ISO) Supplemental character
set, in the latter case from the UK national character set. When
in 7-bit Characters mode, and the Keyboard Usage Mode is set to
Data Processing Keys, the Shift-3 key sends 2/3 ("I" from ASCII
character set).
The possible combinations are summarized in the chart below:
Keyboard
Dialect
DECNRCM
setting
Keyboard
Usage Mode
Code sent
Character
by terminal and set
British
8-bit Chars.
either
10/3
£ - DEC or ISO
British
British
N. America
7-bft Chars.
7-bit Chars.
N/A *
Type.wri ter
Data Proc.
either
2/3
2/3
2/3
£ - British NRC
I - ASCII
I - ASCII
Supplemental
*
when "North American" dialect is selected,
7-bit characters mode is not available.
The legend for the shift 3 (E03) key is If.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.8
19-Apr-1988
Page 6-60
CURSOR KEYS
The four cursor arrow keys are intended for use by the terminal
user to indicate movement of the cursor symbol in the display. No
action to move the cursor is performed by the terminal unless it
is in Local Mode or Local Editing Mode. The cursor movement
controls must be transmitted to the terminal on receipt of these
sequences in order for a corresponding movement of the cursor
symbol to occur.
6.8.1
Cursor Key Mode
The device shall provide four keys specifically designated for
cursor movement as up, down, left and right.
If the Cursor Key
Mode is in the reset state, these keys will transmit the
appropriate ANSI escape sequence codes (CSI A, CSI B, CSI 0, CSI
C).
If the Cursor Key Mode is in the set state, these keys will
transmit applications function codes (SS3 A, SS3 B, SS3 0, SS3 C).
Note that when Cursor Key Mode is in the reset state the control
sequences transmitted by these keys are in fact the cursor
movement control functions, and if echoed back to the terminal
will cause cursor movement to occur.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.8.2
19-Apr-1988
Page 6-61
Cursor Key Codes
The codes transmitted by the Cursor Keys are not effected in any
way by the depression of the Shift or Lock keys.
In the following table, the first entry indicates the code
sequence transmitted when the C1 Transmission Mode is in the reset
state (SEVEN-BIT). The second entry indicates the code sequence
transmitted when the C1 Transmission Mode is in the set state
(EIGHT_BIT).
Codes Transmitted by Cursor Keypad Keys
--------------------------------------Key
Legend
C17
A
DECCKM reset
(up arrow)
1/11 5/11 4/1 (ESC [ A)
9/11 4/1 ( CSI A)
B17
V
1/11 4/15 4/3 (ESC 0 C)
8/15 4/3 ( SS3 C)
<- (left arrow)
1/11 5/11 4/4 (ESC [ D)
CSI D)
9/11 4/4 (
~DmDDmDTM
1/11 4/15 4/2 (ESC 0 B)
8/15 4/2 ( SS3 B)
-> (right arrow)
1/11 5/11 4/3 (ESC [ C)
9/11 4/3 ( CSI C)
B16
1/11 4/15 4/1 (ESC 0 A)
8/15 4/1 ( SS3 A)
(down arrow)
1/11 5/11 4/2 (ESC [ B)
9/11 4/2 ( CSI B)
B18
DECCKM set
Digital Internal Use Only
1/11 4/15 4/4 (ESC 0 D)
8/15 4/4 ( SS3 D)
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
SET/RESET CURSOR KEY MODE
Levels:
page 6-62
DECCKM
1, 2
Purpose: Cause the Cursor keys to transmit cursor control
functions or application function codes.
Set Format:
Reset Format:
CSI
?
1
h
9/11
3/15
3/1
6/8
CSI
?
1
I
9/11
3/15
3/1
6/12
Description:
The DECCKM control is used to set or reset the
state of Cursor Key Mode. When Cursor Key Mode is reset (Cursor),
the Cursor keys will transmit ANSI standard cursor control
sequences. When Cursor Key Mode is set (Ck Application), the
Cursor keys will transmit applications function codes similar to
those transmitted by the Numeric Keypad when Keypad Mode- is set
(Kp_Application).
Note:
In Level 1 operation, any interaction or dependency
between Cursor Key Mode and Keypad Mode is UNDEFINED.
Level 2 operation, however, it is required that these
modes be independent of one another (i.e., it is not
necessary to have one set in order to set the other).
State Affected:
CURSOR KEY MODE: (CURSOR,CK_APPLICATION)i
Algorithm:
PROCEDURE SET_CURSOR_KEY_MODE;
BEGIN
CURSOR KEY MODE:- CK_APPLICATIONi
END;
PROCEDURE RESET_CURSOR_KEY_MODE;
BEGIN
CURSOR KEY MODE:- CURSOR;
END;
Known Deviations:
momDomD
TM
None
Digital Internal Use Only
In
EL-00070-06
VSRM - Keyboard
6.9
19-Apr-1988
Page 6-63
pro~essing
NUMERIC KEYPAD KEYS
The codes transmitted by these keys are not effected in any way by
the depression of the Control, Shift or Lock keys.
6.9.1
Keypad Application/Numeric Mode
There are two modes of operation for the Numeric Keypad keys.
These modes are referred to as Keypad Application Mode and Keypad
Numeric Mode. Since they are mutually exclusive (setting one mode
causes the other to be reset) they can be considered as two states
of the same mode.
6.9.1.1
Numeric Keypad Mode -
When Keypad Numeric Mode is set, the keys in the Numeric Keypad
transmit ASCII codes for the numbers 0 to 9 (3/0 to 3/9 inclusive)
and the ASCII codes for comma, minus/hyphen, period, and carriage
return. This setting of the mode permits the terminal user to use
the keypad for inputting certain numeric information without
change to application software that normally expects input from
the main key array only.
The other keys on the keypad transmit
the SINGLE SHIFT THREE (SS3) control code followed by a single
ASCII character indicating the key which was depressed.
See the
Numeric Keypad code tables.
6.9.1.2
Application Keypad Mode -
When Keypad Application Mode is set, all keys on the keypad
transmit the SINGLE SHIFT THREE (SS3) control code followed by a
single ASCII character indicating the key which was depressed.
Note that SS3 will be transmitted as a single character code
(8/15) when Cl Transmission Mode is set to 8-bit and as a two
character ESC Fe sequence (ESC 0, 1/11 4/15) when set to 7-bit.
This setting of the mode permits application software to be able
to distinguish a keypad key from a main key array key, which is
especially useful for applications that use the keypad as a set of
function keys.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-64
Numeric Keypad Key Codes -
6.9.1.3
In the following table, the first entry indicates the code
sequence transmitted when C1 Transmission Mode is in the reset
(SEVEN BIT) state. The second entry indicates the code sequence
transmItted when C1 Transmission Mode is in the set (EIGHT_BIT)
state.
Codes Transmitted by Numeric Keypad Keys
---------------------------------------Key
Legend
DECKPNM set
A20
0
3/0
DECKPAM set
-----------------------------------------------------------------(0)
1/11
B20
1
3/1
(1 )
1/11
B21
2
3/2
(2 )
1/11
B22
3
3/3
(3)
1/11
C20
4
3/4
(4)
1/11
C21
5
3/5
(5)
1/11
C22
6
3/6
(6 )
1/11
D20
7
3/7
(7)
1/11
D21
8
3/8
(8 )
1/11
D22
9
3/9
(9 )
1/11
C23
,
,)
1/11
D23
- (minus/hyphen) 2/13
(- )
1/11
A22
.
2/14 ( )
.
1/11
A23
ENTER
same as Return
1/11
E20
PF1
(comma)
(period)
2/12 (
1/11
E21
PF2
1/11
E22
PF3
1/11
E23
PF4
1/11
mDmDomD™
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
5/0
5/0
5/1
5/1
5/2
5/2
5/3
5/3
1/11
1/11
1/11
1/11
Digital Internal Use Only
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15.
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
4/15
.8/15
4/15
8/15
4/15
8/15
7/0
7/0
7/1
7/1
7/2
7/2
7/3
7/3
7/4
7/4
7/5
7/5
7/6
7/6
7/7
7/7
7/8
7/8
7/9
7/9
6/12
6/12
6/13
6/13
6/14
6/14
4/13
4/13
4/15
8/15
4/15
8/15
4/15
8/15
4/15
8/15
5/0
5/0
5/1
5/1
5/2
5/2
5/3
5/3
(ESC 0
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
p)
p)
q)
q)
r)
r)
s)
s)
t)
t)
u)
u)
v)
v)
w)
w)
x)
x)
y)
y)
1)
1)
m)
m)
n)
n)
M)
M)
(ESC 0
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
(ESC 0
(
SS3
P)
P)
Q)
Q)
R)
R)
S)
(
(
S)
EL-00070-06
VSRM - Keyboard Processing
6.9.2
19-Apr-1988
Page 6-65
Enter Key Operation
when Keypad Mode is in the Numeric state, depressing the Enter key
causes either a Carriage Return (CR, 1/13) or a Carriage
Return/Line Feed pair (CR LF, 0/13 0/10) to be transmitted,
depending on the state of New Line Mode.
When Keypad Mode is in the Application state, depressing the Enter
key causes an escape sequence (ESC 0 M, 1/11 4/15 4/13) to be
transmitted. See the table of Numeric Keypad keys and their
associated codes.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
19-Apr-1988
SET KEYPAD APPLICATION MODE
Page 6-66
DECKPAM
1,2
Levels:
Purpose: Cause the auxiliary keypad keys to transmit control
functions.
Format:
ESC
1/11
-
3/13
Description:
The DECKPAM control places Keypad Mode into the
set, or 'Application' state.
In this state .the keys of the
Numeric Keypad on the terminal keyboard will transmit a SINGLE
SHIFT THREE (SS3) code followed by a single graphic code
indicating the key wh{ch was struck.
Notes:
1.
SINGLE SHIFT THREE (SS3) is a C1 control code which is
transmitted as 8/15 when the C1 Transmission Mode is set
to EIGHT BIT, and as 1/11 4/15 ( ESC 0 ) when set to
SEVEN BIT.
2.
If the transmitted codes are echoed back to the terminal,
or i~ the terminal is in local mode, the indicated
character from the currently designated G3 set will be
displayed; for example, when ASCII is designated as the
G3 set, the PF1 key sequence would display as "pH.
3.
In Levell operation, any interaction or dependency
between Cursor Key Mode and Keypad Mode is UNDEFINED.
In
Level 2 operation, however, it is required that these
modes be independent of one another (that is, it is not
necessary to have one set in order to set the other).
State Affected:
KEYPAD MODE: (NUMERIC,KP_APPLICATION);
Algorithm:
PROCEDURE SET_KEYPAD_APPLICATION_MODE;
BEGIN
KEYPAD MODE:- KP APPLICATION;
END; Known Deviations:
mamooma
1M
None
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19':"Apr-1988
SET KEYPAD NUMERIC MODE
Levels:
Page 6-67
DECKPNM
1,2
purpose: Cause the auxiliary keypad keys to transmit ASCII
decimal digits (3/0 to 3/9).
Format:
ESC
>
1/11
3/14
Description:
The DECKPNM control places Keypad Mode into the
reset, or 'Numeric' state. In this state the keys of the Numeric
Keypad on the terminal keyboard will transmit a combination of
graphic and control codes.
Notes:
1.
In Levell operation, any interaction or dependency
between Cursor Key Mode and Keypad Mode is UNDEFINED.
Level 2 operation, however, it is required that these
modes be independent of one another (i.e., it is not
necessary to have one set in order to set the other).
State Affected:
KEYPAD MODE: (NUMERIC,KP_APPLICATION);
Algorithm:
PROCEDURE SET_KEYPAD_NUMERIC_MODE;
BEGIN
KEYPAD MODE:- NUMERIC;
END;
Known Deviations:
mDmDomD
TM
None
Digital Internal Use Only
In
EL-00070-06
VSRM - Keyboard processing
19-Apr-1988
Page 6-68
SET/RESET NUMERIC KEYPAD MODE
Levels:
DECNKM
2x, 3
Purpose: Select between numeric and application keypad mode.
This set/reset mode sequence was added to simplify inquiring the
state of the auxiliary keypad using Terminal State Interrogation
(TSI) functions.
Set Format:
Reset Format:
CSI
9/11
3/15
CSI
9/11
3/15
?
?
6
3/6
6
3/6
h
6/8
(Application)
6
3/6
6
3/6
1
(Numeric)
6/12
Description: This Set/Reset mode sequence selects between having
the auxiliary keypad keys transmit ASCII decimal digits (3/0 to
3/9) 'Numeric' mode, or application control functions 'Application
Mode'. The set mode sequence is equivalent to DECKPAM, and the
reset mode sequence is equivalent to DECKPNM.
State Affected:
KEYPAD MODE: (NUMERIC,KP_APPLICATION);
Algorithm:
PROCEDURE SET_KEYPAD_APPLICATION_MODE;
BEGIN
KEYPAD MODE:- KP_APPLICATION;
END;
PROCEDURE SET_KEYPAD_NUMERIC_MODE;
BEGIN
KEYPAD MODE:- NUMERIC;
END;
Known Deviations:
mDmDomD
TM
None
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.10
19-Apr-1988
Page 6-69
EDITIN.G KEYPAD KEYS
These keys transmit designated control sequences which are
intended for editing applications. The Editing Keypad Keys are
inoperative when pressed in combination with either the Shift or
Control keys.
In the following table, the first entry indicates the code
sequence transmitted when C1 Transmission Mode is in the reset
(SEVEN BIT) state. The second entry indicates the code sequence
transmItted when C1 Transmission Mode is in the set (EIGHT BIT)
state.
In Levell operation, the Editing Keypad keys are inoperative
(transmit nothing, and do not keyclick). In Level 2 operation,
the Editing Keypad keys transmit a control sequence with a single
digit parameter indicating the key.
Codes Transmitted by Editing Keypad Keys
---------------------------------------Key
Id
Legend
E16
Find
1/11
5/11
9/11
3/1
3/1
7/14
7/14
(ESC [ 1 -)
( CSI 1 "')
E17
Insert
Here
1/11
5/11
9/11
3/2
3/2
7/14
7/14
(ESC [ 2 -)
( CSI 2 -)
E18
Remove
1/11
5/11
9/11
3/3
3/3
7/14
7/14
(ESC [ 3 -)
( CSI 3 -)
016
Select
1/11
5/11
9/11
3/4
3/4
7/14
7/14
(ESC [ 4 -)
( CSI 4 -)
017
Prev
Screen
1/11. 5/11
9/11
3/5
3/5
7/14
7/14
(ESC [ 5 "')
( CSI 5 -)
018
Next
Screen
1/11
3/6
3/6
7/14
7/14
(ESC [ 6 -)
( CSI 6 -)
momDomD™
Codes Generated (Level 2 only)
5/11
9/11
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.11
19-Apr-1988
Page 6-70
APPLICATION FUNCTION KEYS
Application Function Keys are all the keys in the upper row which
are not explicitly designated as Local Function Keys (all keys but
the left five keys in the row). These keys t.ransmit designated
control sequences which are intended for use by operating systems
and applications programs. The Permanent and Removable (System
and Application) Label Strips serve as legends for these keys.
The specific meaning of these keys is not defined by the
architecture, and will vary from product to product. However, the
codes transmitted by these keys will not change due to their
usage.
When the Application Function keys are depressed in combination
with the Shift Key, they transmit User Defined Key (UDK) sequences
whose definitions have been previously received. See the section
"User Defined Keys Extension" for a complete description of this
Level 2 function. Note that if the UDK extension is not
supported, the Application Function Keys in combination with Shift
will not transmit anything. The codes transmitted by the
Application Function keys are not affected in any way by the
depression of the Lock key. When the Application Function keys
are pressed in combination with the Control key, they are
inoperative (no code is transmitted).
In the following table, the first entry indicates the code
sequence transmitted when Cl Transmission Mode is in the reset
(SEVEN BIT) state. The second entry indicates the code sequence
transmItted whenC1 Transmission Mode is in the set (EIGHT BIT)
state.
In Level 1 operation, only the G1l, Gl2, and Gl3 keys are active
as ESC, BS, and LF, respectively; the remaining Application
Function Keys are inoperative (transmit nothing, and do not
keyclick). In Level 1 operation Gll, Gl2 and Gl3 transmit nothing
and do not click if either the shift key or control key are
.
depressed when either ESC, BS, or LF are also depressed. When the
operating mode is set t.o Level 2, the Application Function Keys
transmit a control sequence with a two-digit parameter indicating
the key.
momoomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-71
Codes Transmitted by Application Function Keys
------====------=--=---====------------------Key
Permanent
Label strip
G05
F6
Level 1
Level 2
-----------------------------------------------------------------G06
F7
G07
F8
G08
F9
G09
FlO
G11
F11 (ESC)
1/11
G12
F12 (8S)
0/8
G13
F13 (LF)
0/10
G14
F14
G15
(F15)
G16
G20
(F16)
F17
G21
F18
G22
F19
G23
F20
mDmoomD™
H't'L,\>
1)0
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
3/1
3/1
3/1
3/1
3/1
3/1
3/2
3/2
3/2
3/2
3/7
3/7
3/8
3/8
3/9
3/9
3/0
3/0
3/1
3/1
7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
3/2
3/2
3/2
3/2
3/2
3/2
3/2
3/2
3/3
3/3
3/4
3/4
3/5
3/5
3/6
3/6
7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14
1/11 5/11
9/11
1/11 5/11
9/11
3/2
3/2
3/1
3/2
3/8
3/8
3/9
3/9
7/14
7/14
7/14
7/14
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
1/11 5/11
9/11
3/3
3/3
3/3
3/3
3/3
3/3
3/3
3/3
3/1
3/1
3/2
3/2
3/3
3/3
3/4
3/4
7/14
7/14
7/14
7/14
7/14
7/14
7/14
7/14
Digital Internal Use Only
-
(ESC [
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI
17
17
18
18
19
19
20
20
21
21
--
(ESC [
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI
23
23
24
24
25
25
26
26
----)
--
(ESC [
CSI
(ESC [
(
CSI
28
28
29
29
(ESC [
CSI
(ESC [
(
CSI
(ESC [
(
CSI
(ESC [
(
CSI
31
31
32
32
33
33
34
34
(
(
(
(
--
)
)
)
)
)
)
)
)
-
-- ))
)
)
)
)
)
)
)
---)
)
)
--)
---)
)
)
)
)
)
)
-)
EL-00070-06
VSRM - Keyboard Processing
6.12
19-Apr-1988
Page 6-72
LOCAL FUNCTION KEYS
The Local Function Keys are the left five keys in the Function Key
Row, having positions G99, GOO, G01, G02, and G03.
The codes for
these keys shall not be transmitted by any terminal products to a
host system. Their use is reserved exclusively for product
specific local functions.
The use of Local Function Keys shall be implementation defined and
registered with the architecture. When a previously defined
function is implemented in a product, it shall be implemented as
defined, and in the defined key position (insofar as this is
possible where multiple definitions do not produce conflict).
See Appendix D "Documented Exceptions" for a description of the
designated codes to be used for the Local Function Keys when they
are implemented internally to a product, such as a Personal
Computer or Workstation.
6.12.1
Hold Screen Key Operation
When the currently selected communications protocol supports some
form of flow control, typing this key will toggle the screen
hold/no hold. When the toggle is set to "no hold", the Hold
Screen LED will be off, and screen operation will be normal. When
the toggle is ·set to "Hold", the Hold Screen LED will be on, and
the screen will freeze.
(The screen will not be updated further
and no more scrolling will occur). Typing the Hold Screen key
when the screen is held will allow scrolling to begin again.
The Hold Screen function should be implemented so that it operates
regardless of whether the Hold Screen key is depressed alone, or
in combination with the Shift or control Keys.
In terminals that
implement the Multiple Sessions extension, such as the VT330/340,
pressing Hold Screen in combination with the CTRL Key will hold
all sessions.
If the currently selected communications protocol does not support
the Hold Screen function, the Hold Screen key will be inoperative.
See DEC STD 070-12 Terminal Synchronization for information on the
interaction between Hold Screen and communications flow control.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.12.2
19-Apr-1988
Page 6-73
Print Screen Key Operation
For a complete description of the printer modes and data transfer
operations, see DEC STD 070-7 Printer Port Extension.
a.
PRINT alone prints a copy of the cell text data in the
region of the character cell display defined by Print
Extent Mode (either the entire character cell display, or
the character cell display scrolling region) to the
printer port.
b.
SHIFT/PRINT prints a copy of the entire character cell
display bitmap to the printer port (binary transfer).
c.
CONTROL/PRINT toggles Auto Print Mode.
6.12.3
Set-up Key Operation
Depression of the Set-up Key, either alone or in combination with
the Shift or Control Keys, causes the terminal to enter into a
local mode of operation in which certain terminal state may be
changed by the User.
Keyboard operation and screen display in
s~t-up Mode is beyond the scope of this architecture
specification, as is the means by which the terminal returns to
normal operation, and the state which gets restored.
6.12.4
Local Function Key F4
6.12.4.1 ~witch Session Key Operation - The Switch Session Key
(F4) is used by terminals with the Multiple Sessions extension
(VT330/340) to switch between sessions.
a.
Switch Session or Shift/Switch Session instructs the
terminal to activate another session. Refer to the
Session Management chapter.
b.
CTRL/Switch Session instructs the terminal to select one
of a number of presentation states. Refer to the
Pre septation Management chapter.
6.12.4.2 Data/Talk Key Operation - Terminals with an integral
modem (option on VT220), may use F4 as a Data/Talk switch for the
modem.
Pressing F4 alone will toggle between the Data and Talk
modes. The Data mode is used for data communications once a
connection is established. Talk mode is used for dialing or
normal conversation with the attached telephone.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-74
6.12.4.3 F4 Operation When Not Used For Local Function - If not
used for a local function, F4 shall be dead (shall not transmit
anything to the host).
6.12.5
Break Key Operation
For a complete description of the communications functions, see
DEC STD 070-12 Terminal Synchronization, DEC STD 070-4 Terminal
Management, and DEC STD 070-3 Code Extension Layer.
1.
BREAK alone transmits a break if break is enabled (an
optional set-up feature may be provided to disable the
break function).
2.
SHIFT/BREAK performs a disconnect if disconnects are
enabled.
3.
CONTROL/BREAK sends the terminal answerback message to
the host.
mDmDomD
TM
Digital Internal Use Only
EL-00070-06
- Keyboard Processing
Page 6-75
19-Apr-1988
VS~M
6.13
MAIN KEY ARRAY - SPECIAL KEYS AND FUNCTIONS
The following keys are "special keys" on the Main Key array.
They
perform special actions or are otherwise unique. They are each
found on all versions of the keyboard.
Four of the keys do not cause bytes to be immediately transmitted
across the coding interface; rather, they condition the effect of
other keys at the same time and/or subsequently. These keys are
not auto-repeatable. The keys are:
1.
Control
2.
Shift
3.
Lock
4.
Compose
The remaining four keys send a particular ASCII control character
or SPACE. All but the Return key are auto-repeatable. They are:
Normal
Control Shift
Lock
1.
Space Bar
2/0
0/0
2/0
2/0
2.
Return
0/13*
0/13*
0/13*
0/13*
3.
Tab
0/9
0/9
0/9
0/9
4.
Delete
7/15
1/8
7/15
7/15
* When New Line Mode is set (New Line On) , the two-byte sequence
0/13 0/10 is transmitted.
6.13.1
Control Key Operation
When the Control key is held down while another key is depressed
which forms a legal control combination, there is one keyclick and
the appropriate control code is transmitted. All of the 32 ASCII
CO control codes plus DELETE (7/15) can be generated by typing the
A-Z keys or the 2-8 keys independent of the Shift key or Lock key.
In addition to the 2-8 keys, the keyboard provides alternative
forms for keying the CO controls for backward compatibility with
DEC STD 107 and ANSI x4.14 (now superseded by X4.23-1982). On
non-US keyboards, these alternate forms are provided whenever the
keys involved in these combinations are present.
mDmDomDTM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-76
Valid control combinations auto repeat the same as other
repeatable keys.
If Control is pressed while a key is repeating,
and the key forms a valid control combination, the key will
continue to repeat but transmit the control combination while the
Control key is pressed.
If the key does not form a valid control
combination, the key will stop repeating while the Control key is
pressed.
I
I
I
I
I
I
I
I
I
I
I
I
When the Control key is depressed, the Shift key is ignored. On
European keyboards with the numbers in shifted positions, the
Ctrl-number construction does not require the use of shift. This
applies to the number keys only.
In the case where the numeral
legends are shifted, and the number forms a valid control code,
the unshifted legend is ignored.
If the number has no meaning
with CTRL, then the lower character on the key (such as [ ) is
used.
Exception: Tilde (EOO) on the North American keyboard is
used even though it is the upper character.
Guideline:
On the French keyboard, typing CTRL/E06 (unshifted
I· legend "[", shifted legend "6") will generate the control code for
I
I
I
I
CTRL-6. On the Italian Keyboard in DP mode, CTRL-9 is not
defined, so the key sends CTRL-[ (ESC) because that is the
unshifted legend on the key, and the "[" charact~r forms a valid
control combination.
The valid control combinations are standard across all keyboards.
Refer to the "Control Codes and Keystrokes" section later in this
chapter.
Invalid control combinations (any not listed below) will result in
no keyclick occurring and no code being transmitted.
Note 1: E1 to E6 (the editing keypad), F6 to F20 (the top row
function keys) and the cursor keys are dead when used with the
CTRL key.
Note 2:
keys.
The CTRL key is ignored when us.ed with the numeric keypad
Note 3: When using some communications protocols, certain of the
control characters may not be allowed, for example, ctrl/S and
ctrl/O (XON and XOFF).
In this case the control characters are
considered as Local Function Keys. Conforming software should not
use ctrl/S and ctrl/O because of their possible use in
communications flow control. See DEC STD 070-12 Terminal
Synchronization for a complete description of the use of these
characters.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.13.2
19-Apr-1988
Page 6-77
Shift Key Operation
In order to obtain a shifted character, the Shift key and the
graphic character key must be depressed together.
Shift only
applies to keys which produce graphic characters on the main key
array. The state of the Shift key is ignored when any other key
on the main array is depressed, including the Space Bar, Return,
Tab, Delete keys.
The use of the Control key supersedes the Shift
key, so that the same control characters are generated whether the
key is also shifted or not.
Shift has no effect on the codes transmitted by the Numeric Keypad
keys and the Cursor Keys. When Function keys are depressed in
combination with the Shift key, they transmit User Defined Key
(UDK) sequences whose definitions have been previously received.
The Editing keypad keys are inoperative when pressed in
combination with the Shift key.
6.13.3
Lock Key Operation
The LOCK key is used to enter Shift Lock Mode or Caps Lock Mode.
If a Shift Lock keyboard is selected in Set-Up: Shift Lock mode
is turned on by pressing the LOCK key, and turned off by pressing
either the LOCK key or a SHIFT key.
If a Caps Lock keyboard is
selected in Set-Up: Caps Lock Mode is toggled on or off by
pressing the LOCK key.
The LOCK key operates at all times regardless of any other keys
being held down.
The terminal user may set Caps/Shift Lock Mode to either Caps Lock
Operation or Shift Lock. Operation as a Set-Up feature.
The
factory default is Caps Lock Operation to be compatible with the
VT100.
mDmDomDTM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.13.3.1
19-Apr-1988
Page 6-78
Shift Lock Operation -
When Caps/Shift Lock Mode is set to Shift Lock Operation all
normal char~cters a~e acted on as if the Shift key were being
depressed at the same time as the keystroke. The normal
characters are those characters which are listed in the tables of
alpha-numeric keyboard maps. Not included are control characters,
tab, function keys, delete, return, compose, enter, lock, and
shift keys. Note: when Shift Lock Operation is in effect, unless
an implied or explicit compose sequence is used, it is not
possible to generate the upper case characters using:
a.
. b.
6.13.3.2
The keys that have one lower case letter legend and
another legend .
The keys that have two lower case letter legends.
Caps Lock Operation -
When Caps/Shift Lock Mode is set to Caps Lock Operation, keys
whose shifted and unshifted characters are the upper and lower
case form of a single alphabetic letter transmit the shifted
(upper case) ch~racter (as if the Shift key were being held down).
Keys affected-by Caps Lock are those with upper case alphabetic
legends on the corresponding keyboard. Keys with one or two lower
case (small letter) legends are not effected by Caps Lock
Operation.
mDMDomo™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.13.4
19-Apr-1988
page 6-79
SPACE Bar Operation
The Space Bar usually causes the SPACE code (SP 2/0) to be
transmitted.
It can also be used in some explicit and implied
compose sequences in order to represent a free standing accent as
the equivalent ASCII code for a spacing character. Ctrl-space
will send a NUL.
6.13.5
Return Key Operation
Depressing the Return key causes either a Carriage Return (CR,
0/13) or a Carriage Return/Line Feed pair (CR LF, 0/13 0/10) to be
transmitted, depending on the state of New Line Mode.
6.13.5.1
New Line Mode -
A conforming device shall provide a means of selecting the codes
transmitted as a result of depressing the Return and Enter keys on
the keyboard. Normally these keys will both transmit a Carriage
Return character (0/13) [reset state - no new line]. When this
mode is in the set state [set state - new-line] these keys will
bQth generate a two-code sequence 1/13 1/10 ( CR LF ).
NEW_LINE_MODE: (NEW_LINE_OFF,NEW_LINE_ON)i
Note that New Line Mode is a function of the Character Cell
Display architecture since it also causes receipt of LF to be
interpreted as if it were CR LF, and is fully defined in that
specification.
Note also that New Line Mode does not effect the code transmitted
when the M key is pressed while holding the Control key.
ctrl/M
always transmits just 0/13.
Deviation Note:
In the VT100, VT101, VT102, VT125, VT131, and
VT132, the M key in combination with the Control Key IS effected
by New Line Mode, and sends the sequence 0/13 0/10 when New Line
Mode is in the set (New Line On) state.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.13.6
19-Apr-1988
page 6-80
Tab Key Operation
Typing the Tab key causes a horizontal tabulation code (HT, 0/9)
to be transmitted.
6.13.7
Delete Key Operation
The Delete key usually causes a Delete code (DEL, 7/15) to be
generated. The exception is that during an explicit or implied
compose sequence it aborts the compose sequence in progress,
cancels compose mode, and no code is transmitted. The delete key
still clicks if keyclick is enabled.
Guideline: VT300 series terminals provide a set-up option to
allow the Backarrow key " Greater than
Z
X
C
V
B
N
M
Comma
Period
? Question mark
.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-84
North American Keyboard, 8-bit Characters, Data processing Keys
Equivalent to 8-bit Characters, Typewriter Keys
North American Keyboard, 7-bit Characters, Typewriter Keys
7-bit Characters mode is not available with the North American
keyboard dialect, although certain conditions can restrict the
keyboard to sending 7-bit characters. In this case, the layout is
the same as for 8-bit Characters.
North American Keyboard, 7-bit Characters, Data processing Keys
Equivalent to 7-bit
Cha~acters,
Typewriter Keys
The LK201-NA is for use with the VT330/340 series terminals and
has front legends on the editing and numeric keypad not found on
the LK201-EE.
There are three legends on E03 (LK201-EE LK20l-NA combined US/UK),
the shifted code generated by this key is dependent upon which
dialect, North American or British, is selected in set-up.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.14.'2
19-Apr-1988
Page 6-85
British Keyboard (LK201-EE US/UK)
8-bit Characters, Typewriter Keys
Position
-------EOO
E01
E02
E03**
E04
EOs
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
BOs
B06
B07
B08
B09
B10
mDmDomD™
Unshifted
--------,
Open quote
1
2
3
4
5
6
7
8
9
0
- Hyphen, Minus
- Equals
q
w
e
r
t
Y
u
i
·0
P
[
J
Shifted
------Tilde character
1 Exclamation point
@ Commercial at
£ British pound
(10/3)
$ Dollar sign
% Percent sign
... Circumflex character
& Ampersand
* Asterisk
( Opening parenthesis
) Closing parenthesis
Underline
+ Plus
Q
W
E
R
T
y
U
N
I
0
P
Opening bracket
Closing bracket
a
s
d
{ Opening brace
} Closing brace
A
S
0
f
F
9
h
j
k
I
G
H
Semicolon
Apostrophe
\ Backslash
< Less Than
Colon
" Quotation marks
I vertical line
> Greater than
J
K
L
,;
z
z
x
c
X
C
V
B
v
b
n
m
,
.
/
N
M
Comma
Period
Slash
,
Comma
Period
? Question mark
.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-86
British Keyboard, 8-bit Characters, Data Processing keys
Equivalent to 8-bit Characters, Typewriter keys
British Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
E03
3
£ British pound
(2/3)
British Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bi t Characters, Typewriter .keys)
Position
unshifted
Shifted
E03
3
t Number sign
(2/3)
There are three legends on E03, the shifted code generated by this
key is dependent upon which dialect, North American or British, is
selected in set-up.
mDmDO!D™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.14.3
19-Apr-1988
Page
British Keyboard (LK201-AE)
8-bit Characters, Typewriter Keys
position
Unshifted
Shifted
EOO
[Tilde mark]
1
2
3
Degree sign
Exclamation point
" Double quote
£ British pound (10/3)
$ Dollar sign
% Percent sign
& Ampersand
, Apostrophe
Open parenthesis
Close parenthesis
.. Equals
underline
1.i one-qrtr
E01
E02
E03
E04
4
EOS
5
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
6
7
8
9
DOS
006
D07
008
009
010
011
012
COl
C02
C03
C04
o
- Hyphen, Minus
~ one-half
q
w
e
t
y
BOS
B06
B07
B08
B09
B10
mDmDomD™
o
@ Commercial at
] Close bracket
a
s
P
§
Section sign
[ Open bracket
A
S
o
d
f
h
j
k
BOO
U
I
i
o
P
C06
C07
C08
C09
C10
C11
C12
B01
B02
B03
B04
Y
U
g
Q
W
E
R
T
r
COS
o
F
G
I
; Semicolon
Colon
[Circumflex accent]
< Less Than
z
H
J
K
L
+ Plus
* Asterisk
[Grave accent]
> Greater than
Z
x
x
c
v
V
C
b
n
B
m
, Comma
. Period
/ Slash
N
M
, Comma
. Period
? Question mark
Digital Internal Use Only
6~87
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-88
British Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
E03
011
@
Shifted
* Number
sign
Backslash
3
(2/3)
\
British Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------EOO
E03
C12
Unshifted
Shifted
---------
-------
3
£ British pound
- Tilde
A
Circumflex Character
Dead
,
(2/3 )
Open quote
British Keyboard, 7-bit Characters, Data Processing keys
(Where ~ifferent from 8-bit Characters, Typewriter keys)
Position
Unshifted
EOO
E03
011
C12
3
-------1
.1
---------
@
A
Shifted
-------
Tilde
. Dead
~ Dead
\ sackslash
Circumflex Character , Open quote
<;.:
mDmDomO™.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.14.4
19-Apr-1988
Page 6-89
Flemish Keyboard (LK201-AB)
8-bit Characters, Typewriter Keys
Position
Unshifted
EOO
[Grave accent)
ADlpe r s.and
e Small e with acute
n Quotation marks
, Apostrophe
( Opening parenthesis
S Section sign
e small e with grave
Exdlamation point
9 Small c with Cedilla
a Small a with grave
) Closing parenthesis
Hyphen, Minus
a
z
e
E01
E02
E03
E04
EOs
E06
E07
E08
E09
E10
Ell
E12
DOl
D02
D03
D04
DOS
D06
007
D08
D09
D10
D11
D12
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
Shifted
[Tilde mark)
&
(14/9 )
1
2
3
4
5
(10/7)
(14/8)
(14/7)
(14/0 )
6
7
8
9
o
o
A
z
Degree sign (11/0)
underline
E
r
R
t
T
y
Y
U
I
u
i
o
o
p
[Circumflex accent)
$ Dollar sign
q
s
P
[Dieresis)
Asterisk
*
Q
S
d
D
f
9
h
j
k
F
G
H
J
K
L
M
1
m
u Small
u with grave
(15/9)
# Number sign
% Percent sign
@ Commercial at sign
BOO
< Less Than
> Greater than
B01
B02
B03
B04
w
W
X
BOs
b
B
B06
B07
B08
B09
B10
n
, Comma
; Semicolon
Colon
= Equals
N
mDmDomD™
x
c
C
v
V
Dig1tal Internal Use Only
? Question mark
Period
/ Slash
+ Plus
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-90
Flemish Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
position
-------E06
E07
C1l
unshifted
Shifted
---------
-------
[ Opening bracket
] Closing bracket
6
7
\ Backslash
% Percent sign
Flemish Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
position
Unshifted
Shifted
--------
---------
-------
EOO
E02
E06
E07
E09
E10
Ell
Cll
C12
[Grave accent]
Small e with acute
Section sign
small e with grave
Small c with Cedilla
Small a with grave
) Closing parenthesis
u Small u with grave
Dead
e
§
e
9
a
(7/11)
(5/13)
(7/13)
(5/12)
(4/0 )
(7/12)
Dead
2
6
7
9
0
0
Degree sign (5/11)
% Percent sign
Dead
Flemish Keyboard, 7-bit Characters, Data Processing Keys
(Where differ~nt from 8-bit Characters, Typewriter keys)
Position
Unshifted
EOO
E02
E06
E07
E09
ElO
Ell
011
C11
, Open quote
Dead
[ Opening bracket
] Closing bracket
Dead·
Dead
) Closing parenthesis
Circumflex character
\ Backslash
mDmDomD™
A
Digital Internal Use Only
Shifted
- Tilde character
2
6
7
9
o
Dead
" Quotation marks
% Percent sign
EL-00070-06
VSRM - Keyboard Processing
6.14.5
19-Apr-1988
Page 6-91
Canadian (French) Keyboard (LK201-AC)
a-bit Characters, Typewriter Keys
Position
-------EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
Cl1
Cl2
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
mDmDomD™
Unshifted
Shifted
[Tilde mark]
1
2
3
4
5
6
7
a
9
0
- Hyphen, Minus
- Equals
q
w
e
r
t
Y
u
i
o
---------
0
"
/
$
%
?
&
*
+
Degree sign
(11/0)
Exclamation mark
Quotation marks
Slash
Dollar sign
Percent sign
Question mark
Ampersand
Asterisk
Opening parenthesis
Closing parenthesis
Underline
plus
Q
W
E
R
T
Y
U
I
o
P
P
Small c w/Cedilla (14/7)
Number
sign
#
a
s
d
~
~
Capital C w/Cedilla (12/7)
@ Commercial at
A
S
o
f
F
g
h
G
H
j
J
k
1
K
L
; Semicolon
[Grave accent]
" Backslash
< Less Than
Colon
[Circumflex accent]
I vertical line
> Greater than
z
z
x
c
v
b
n
X
C
V
B
N
M
4ll
.
e
Comma
Period
Small e with acute (14/9)
Digital Internal Use Only
, Apostrophe
• Period
E Capital E with acute (12/9)
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-92
Canadian (French) Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
011
) Closing bracket
[ Opening bracket
Canadian (French) Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
EOO
Dead
~ Small c wlCedilla (5/12)
# Number sign
Dead
e Small e with acute (7/11)
Dead
Dead
Dead
Dead
Dead
011
012
C12
B10
Canadian (French) Keyboard, 7-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
EOO
- Tilde char
) Closing bracket
, Open Quote
Dead
D11
C11
B10
mamDDmD™
Digital Internal Use Only
Dead
[ Opening bracket
Circumflex Char
Dead
A
EL-00070-06
VSRM - Keyboard Processing
6.14.6
19-Apr-1988
Page 6-93
Danish Keyboard (2nd, LK201-EO)
8-bit Characters, Typewriter Keys
Unshifted
Shifted
EOO
.. Tilde Char
S Section sign (10/7)
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
1
2
Exclamation mark
" Quotation marks
£ Pound sign
(10/3)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
, Open Quote
Position
DOS
006
007
008
009
010
011
012
COl
3
4
5
6
7
8
9
o
+ plus
, Apostrophe
q
w
Q
e
W
E
r
t
R
T
y
Y
u
i
U
I
o
o
p
P
a
Small a with ring (14/5)
" Quotation marks
a
s
A Capital
A
A
C02
C03
C04
d
f
o
COS
g
C06
C07
C08
C09
C10
C11
C12
800
801
802
803
804
805
806
807
808
s09
810
h
j
k
I
G
H
mDmoomD™
A with ring (12/5)
Circumflex Char
S
F
J
K
L
~
~
Small ae dipthong (14/6)
Small 0 with slash (15/8)
, Apostrophe
< Less Than
z
x
c
v
b
~
o
*
>
Capital AE dipthong (12/6)
capital 0 with slash(13/8)
Asterisk
Greater than
Z
X
C
V
8
n
m
N
M
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard processing
19-Apr-1988
P,age 6-94
Danish Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
I
I
I
'1
I
-------EOO
E03
011
C10
C11
Unshifted
---------
- Tilde
Char
3
Closing brace
Opening brace
I Vertical bar
}
{
Shifted
-------
Commercial at
Number sign
] Closing bracket
[ Opening bracket
\. Back slash
@
*
Danish Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
position
--------
EOO
E03
011
C10
C11
Unshifted
---------
-3 Tilde
a
iI!
/21
Char
Small a with ring (7/13)
Small ae dipthong (7/11)
Small o with slash (7/12)
Shifted
-------
Commercial at
Number sign
A Capital A with ring (5/13)
.IE Capital AE dipthong (5/11)
fa Capital 0 with slash (5/12)
@
*
Danish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
-------EOO
E03
011
C10
Cl1
mDmDomD™
Unshifted
Shifted
-3 Tilde
------@ Commercial
---------
Char
Closing brace
Opening brace
I Vertical bar
}
{
Digital Internal Use Only
at
it Number sign
Closing bracket
Opening bracket
\. Back slash
]
[
EL-00070-06
VSRM - Keyboard Processing
6.14.7
page 6-95
19-Apr-1988
Danish Keyboard (1st, LK201-AD)
8-bitCharacters, Typewriter Keys
Unshifted
Shifted
EOO
[Tilde accent]
E01
E02
E03
E04
E05
E06
E07
E08
E09
.E10
Ell
E12
001
002
003
004
1
2
Degree sign (11/0)
Exclamation mark
" Quotation marks
S Section sign (10/7)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
- Equals
? Question mark
[Grave accent]
position
3
4
5
6
7
8
9
o
+ Plus
[Acute accent]
q
t
y
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
mDmDomD™
E
R
r
DOS
COl
Q
W
w
e
006
D07
008
009
010
011
012
o
T
Y
U
I
u
i
o
p
o
P
a
Small a with ring (14/5)
[Dieresis]
A capital
a
s
A
A with ring (12/5)
[Circumflex accent]
S
d
f
9
h
j
k
I
o
e Small ae dipthong (14/6)
~
F
G
H
J
K
L
Capital AE dipthong (12/6)
Capital 0 with slash(13/8)
* Asterisk
> Greater than
e Small 0 with slash (15/8)
, Apostrophe
< Less Than
o
z
Z
X
C
V
B
x
c
v
b
n
m
N
M
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-96
Danish Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
unshifted
E03
D11
C11
--------
Shifted
---------
-------
3
@
] Closing bracket
[ Opening bracket
* Number
\ Back slash
sign
Commercial at
Danish Keyboard, 1-bit Characters, Typewriter Keys
(Where different from a-bit Characters, Typewriter keys)
position
-------EOO
E03
E12
D11
D12
C10
C11
Unshifted
Shifted
---------
-------
Dead
3
Dead
A Small a with ring (7/13)
[Dieresis]
~Small ae dipthong (7/11)
~-Small 0 with slash (7/12 )
[Ring mark]
Dead
Dead
A Capital A with ring ( 5/13)
Dead
1£ Capital AE dipthong (5/11)
fa Capital o with slash (s/12)
Danish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
EOO
E03
E12
D11
D12
C10
C11
mDmDomDTM
- Unshifted
Shifted
Dead
3
Dead
Dead
[Dieresis]
~ Small ae dipthong (7/11)
Number sign
*
,
Digital Internal Use Only
[Ring mark]
Dead
Dead
Dead
Dead
1£ Capital AE dipthong (5/11)
Dead
EL-00070-06·
VSRM - Keyboard Processing
6.14.8
19-Apr-1988
Page 6-97
Finnish Keyboard (3rd, LK201-NX)
8-bit Characters, Typewriter Keys
Position
Unshifted
Shifted
EOO
... Tilde Char
1
2
3
4
5
6
7
8
@ Commercial at
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
momoomD™
9
a
A
r
t
?
,
Quotation marks
Section sign (10/7)
Dollar sign
Percent sign
Ampersand
Slash
Opening parenthesis
Closing parenthesis
Equals
Question mark
Open Quote
Q
W
E
R
T
Y
U
I
y
u
i
o
o
p
ij
&
/
(
)
=-
+ Plus
Circumflex Char
q
w
e
a
! Exclamation mark
"
5
$
%
P
Small a with ring (14/5)
small u w/umlaut (15/12)
a
s
A Capital
o Capital
A with ring (12/5)
U w/umlaut (13/12)
A
S
d
f
g
h
j
k
I
:a"small 0 with umlaut (15/6)
small a with umlaut (14/4)
, Apostrophe
< Less Than
a
z
o
F
G
H
J
K
L
o Capital
0 w/umlaut (13/6)
A capital A w/umlaut (12/4)
*
Asterisk
> Greater than
Z
X
x
c
C
V
v
b
B
n
N
M
m
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Semicolon
Colon
Underline
EL-00070-"-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-98
Finish Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------E03
011
012
C10
C11
Shifted
Unshifted
---------
-------
# Number sign
] Closing bracket
Circumflex character
\ Backslash
[ Opening bracket
~
} Closing brace
N
A
Tilde character
I Vertical line
{ Opening brace
Finnish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------EOO
E03
E12
011
012
C10
C11
Shifted
Unshifted
-------
---------
@ Commercial at
Dead
3
# Number Sign
Dead
Dead
a Small a with ring (7/13) A Capital A with ring ( 5/13 )
Capital U w/umlaut ( 5/14)
ii small u with umlaut (7/14)
capital 0 w/umlaut (5/12)
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11) A Capital A w/umlaut (5/11)
o
o
Finnish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
E03
011
012
C10
C11
3
} Closing brace
Tilde character
I vert bar
{ Opening brace
mDmDomD™
Shifted
# Number sign
] Closing bracket
Circumflex character
. \ Back slash
[ Opening bracket
Digital Internal Use Only
A
EL-00070-06
VSRM - Keyboard Processing
6.14.9
19-Apr-1988
Page 6-99
Finnish Keyboard (2nd, LK201-NF)
8-bitCharacters, Typewriter Keys
Unshifted
Shifted
EOO
[Tilde mark]
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
1
2
3
4
@ Commercial at
Exclamation mark
" Quotation marks
§ Section sign (10/7)
$ Dollar sign
% Percent sign
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]
Position
DOS
006
007
008
009
010
D11
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
mDmDomD™
5
6
7
8
9
o
+ Plus
[Circumflex accent]
q
w
e
r
t
y
u
i
o
Q
W
E
R
T
Y
U
I
o
P
P
A Small a with ring (14/5)
A Capital
U small u w/umlaut (15/12)
a
A
s
U Capital
A with ring (12/5)
U w/umlaut (13/12)
S
o
d
~
F
9
h
j
k
1
G
H
J
K
L
o
a
o Capital
x
X
C
small 0 with umlaut (15/6)
small a with umlaut (14/4) A
, Apos·t rophe
*
< Less than
>
z
Z
c
0 w/umlaut (13/6)
Capital A w/umlaut (12/4)
Asterisk
Greater than
v
b
V
n
m
N
M
Comma
Period
- Hyphen, Minus
; Semicolon
Colon
Underline
B
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
Page 6-100
19-Apr-1988
Finish Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
-------E03
011
C10
ell
Unshifted
Shifted
---------
-------
3
# Number sign
} Closing brace
] Closing bracket
\ Backslash
[ Opening bracket
I Vertical line
{ Opening brace
Finnish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------EOO
E03
E12
011
012
C10
C11
Unshifted
Shifted
---------
-------
Dead
3
Dead
6 Small a with ring (7/13)
i.i small u with umlaut (7/14 )
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11)
@ Commercial at
# Number sign
Dead
A Capital A with ring (5/13)
U Capital U w/umlaut (5/14)
Capital 0 w/umlaut (5/12)
A Cap.ital A w/umlaut (5/11)
o
Finnish Keyboard, 7-bit Characters, Data Pr6cessing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
EOO
E03
E12
011
012
C10
C11
.. Tilde
3
A
Circumflex
} Closing brace
Dead
I Vertical line
{ Opening brace
@ Commercial at
# Number sign
, Open Quote
] Closing bracket
Dead
\ Backslash
[ Opening bracket
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.14.10
19-Apr-1988
Page 6-101
Finnish Keyboard (1st, LK201-AF)
8-bit Characters, Typewriter Keys
Position
EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
DOl
D02
D03
D04
D05
D06
D07
D08
D09
D10
D11
D12
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
mDmDomD™
Unshifted
Shifted
[Tilde mark]
Degree sign
Exclamation mark
n Quotation marks
§ Section sign (10/7)
$ Dollar sign
% Percent sign
& Ampersand
1 Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]
1
2
3
4
5
6
7
8
9
o
+ Plus
[Circumflex accent]
q
w
e
a
Q
W
E
R
T
Y
U
I
r
t
y
U
i
o
-0
P
P
a Small a with ring (14/5)
u small u w/umlaut (15/12)
A Capital A with ring (12/5)
ij Capital U wlumlaut (13/12)
a
A
s
S
d
f
D
F
g
G
H
J
K
L
h
j
k
I
o
with umlaut (15/6) 0 Capital 0 w/umlaut (13/6)
A Capital A w/umlaut (12/4")
, Apostrophe
* Asterisk
< Less Than
> Greater than
z
z
x
X
c
C
small
0
ii small a with umlaut (14/4)
v
V
b
B
N
M
n
m
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Semicolon
Colon
Underline
EL-00070-06
VSRM -Keyboard processing
19-Apr-1988
Page 6-102
Finish Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
E03
011
012
3
@ Commercial at
[ Opening bracket
\ Backslash
] Closing bracket
i Number sign
Finnish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
EOO
E03
E12
011
012
C10
C11
Dead
3
Dead
a Small a with ring (7/13 )
ii small u with umlaut (7/14)
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11)
--------
---------
Shifted
-------
Dead
Dead
Dead
A Capital A with ring (5/13)
U Capital U w/umlaut (5/14)
Capital 0 w/umlaut (5/12)
A Capital A w/umlaut (5/11)
o
Finnish Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
EOO
E03
E12
011
012
C10
C11
mDmoamo™
. unshifted
Shifted
Dead
Dead
Dead
Dead
Dead
Dead
Dead
i Number sign
Dead
o small 0 with umlaut (7/12) Capital 0 w/umlaut (5/12)
a small a with umlaut (7/11) A capital A w/umlaut (5/11)
3
o
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.14.11
19-Apr-1988
Page 6-103
Austrian/German Keyboard (2nd, LK201-NG)
8-bit Characters, Typewriter keys
Position
--------
EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
,007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
Bio
mDmDomD™
Unshifted
---------
Shifted
-------
... Tilde char
...
1
2
"
3
S
4
$
%
5
6
&
7
/
(
8
)
9
0
B German small sharp s (13/15) ?
,
' Apostrophe
q
Q
w
W
e
E
r
R
t
T
z
Z
u
i
o·
P
U
Circumflex char
Exclamation mark
Quotation marks
Section sign ( 10/7)
Dollar sign
Percent
Ampersand
Slash
Opening parenthesis
Closing parenthesis
Equals
Question mark
Open Quote
I
0
P
small u w/umlaut (15/12)
+ Plus
a
s
d
f
g
h
ij
U Capital U w/umlaut (13/12)
*
F
G
H
j
J
k
1
K
L
0 small 0 with umlaut (15/6)
a
small a with umlaut (14/4)
# Number sign
< Less Than
y
x
c
v
b
n
m
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Asterisk
A
S
0
0 Capital 0 w/umlaut (13/6)
A Capital A w/umlaut (12/4)
' Apostrophe
> Greater than
Y
X
C
V
B
N
M
Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard processing
19-Apr-1988
Page 6-104
Austrian/German Keyboard, a-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
--------
---------
-------
Commercial at
} Close Brace
) Closing bracket
\ Backslash
Ell
011
C10
C11
I Vertical bar
? Question mark
@
{
[
Open brace
Opening bracket
Austrian/German Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------EOO
E03
Ell
011
C10
C11
Unshifted
Shifted
---------
Dead
3
B German small
ij small u with
0 small 0 with
a small a with
-------
Circumflex Char
Section sign (4/10)
Question mark
ij Capital U w/umlaut (5/13)
6 Capital Ow/umlaut (5/12)
A Capital A w/umlaut (5/11)
A
sharp s (7/14)
umlaut (7/13)
umlaut (7/12)
umlaut (7/11)
§
?
Austrian/German Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------E03
Ell
011
C10
C11
mDmDomD™
Unshifted
--------3
I Vertical bar
@
Commercial at
} Closing Brace
) Closing bracket
Digital Internal Use Only
Shifted
-------
Dead
? Question mark
\ Backslash
{ Opening Brace
[ Opening bracket
EL-00070-06.
VSRM - Keyboard Processing
6.14.12
19-Apr-1988
Page 6-105
Austrian/German Keyboard (1st, LK201-AG)
8-bit Characters, Typewriter keys
Position
-'------EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
005
006
007
ooa
009
010
011
012
COl
CO2
C03
C04
C05
C06
C07
coa
C09
ClO
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
BOa
B09
B10
mDmDomD™
Unshifted
Shifted
------[Tilde mark]
[Circumflex accent]
Exclamation mark
1
n Quotation marks
2
3
S Section sign (10/7)
4
$ Dollar sign
% Percent
5
& Ampersand
6
7
/ Slash
( Opening parenthesis
a
) Closing parenthesis
9
= Equals
0
B German small sharp s (13/15) ? Question mark
[Grave accent]
[Acute accent]
Q
q
w
w
e
E
R
r
T
t
---------
z
Z
u
i
U
0
0
P
I
P
small u w/umlaut (15/12)
+ Plus
a
s
d
f
g
h
j
k
ij
I
0 small o with umlaut (15/6)
a small a with umlaut (14/4)
# Number sign
< Less than
y
x
c
v
b
n
m
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
U Capital U w/umlaut (13/12)
* Asterisk
A
S
0
F
G
H
J
K
L
(; Capital 0 w/umlaut (13/6)
A
, capital A w/umlaut (12/4)
>
Apostrophe
Greater than
y
X
C
V
B
N
M
Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-106
Austrian/German Keyboard, 8-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
Unshifted
Shifted
011
C11
@ Commercial at
] Closing bracket
'\ Backslash
[ Opening bracket
Austrian/German Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
position
-------EOO
E03
Ell
E12
011
C10
C11
Unshifted
---------
Dead
3
~ German small sharp s (7/14)
Dead
ij small u w/umlaut (7/13)
0 small 0 with umlaut (7/12)
a small a with umlaut (7/11)
Shifted
------A
§
?
,
U
0
A
Circumflex char
Section sign (4/10)
Question mark
Open quote
Capital U w/umlaut (5/13)
Capital Ow/umlaut (5/12)
Capital A w/umlaut (5/11)
Austrian/German Keyboard, 7-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
--------
EOO
E03
Ell
E12
011
C10
C11
mDmDomD™
Unshifted
Shifted
Dead
3
~ German small sharp s (7/14)
Dead
Dead
0 small o with umlaut (7/12)
Dead
Circumflex char
Section sign (4/10)
? Question mark
, Open quote
Dead
Capital 0 w/umlaut (5/12)
Dead
---------
Digital Internal Use Only
A
§
o
EL-00070-06
VSRM - Keyboard Processing
6.14.13
19-Apr-1988
Page 6-107
Dutch Keyboard (2nd, LK201-NH)
The Dutch keyboard is equivalent to the North American keyboard.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard
6.14.14
19-Apr-1988
Page 6-108
~rocessing
Dutch Keyboard (1st, LK201-AH)
8-bit Characters, Typewriter Keys
Position
EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
D07
008
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
mDmDomD™
Unshifted
Shifted
[Tilde mark]
, Apostrophe
/ Slash
D Degree sign
'" one-qrtr
~ one-half
£ British pound
$ Dollar sign
% Percent sign
# Number sign
& Ampersand
( Opening parenthesis
( Closing parenthesis
§ Section sign
" Quotation marks
Colon
q
w
w
1
2
3
4
5
6
7
8
9
o
Q
e
E
r
t
R
.,
T
Y
U
I
u
i
o
p
o
P
[Circumflex accent]
* Asterisk
[Dieresis]
Exclamation mark
a
A
s
S
o
d
f
g
h
j
k.
I
F
G
H
J
K
L
- Hyphen, Minus
[Grave accent]
@ Commercial at
< Less Than
z
Underline
TAcute accent]
I Vertical line
> Greater than
x
X
C
c
v
Z
b
V
B
n
N
m
M
, Comma
Period
+ plus
? Question mark
semicolon
= Equals
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-109
Dutch Keyboard, 8-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
--------
---------
-------
E02
E03
E10
2
3
0
Opening bracket
Closing bracket
\ Backslash
[
]
Dutch Keyboard, 7-bit Characters, Typewriter Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshi:eted
--------
---------
EOO
E01
E02
E03
E06
E10
011
C11
Cl2
Dead
1
2
3
6
0
Circumflex Character
, Open
quote
Dead
A
Shifted
------Dead
~ one-qrtr (7/13)
~ one-half (5/12)
£ British pound (2/3 )
Dead
Dead
", Dieresis
Apostrophe
I Vertical line
Dutch Keyboard, 7-bit Characters, Data Processing Keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------EOO
E01
E02
E03
E06
E10
Cll
Cl2
unshifted
Shifted
Dead
Dead
~ one-qrtr (7/13)
Dead
Dead
Dead
Dead
, Apostrophe
I vertical line
--------1
2
3
6
0
,
Open quote
Dead
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.14.1~
Page 6... 110
19-Apr-1988
Italian Keyboard (LK201-AI)
8-bit Characters, Typewriter keys
Shifted
position
Unshifted
EOO
[Grave accent]
£ British pound sign (10/3)
, Small e with acute (14/9)
" Quotation marks
, Apostrophe
Opening parenthesis
Underline
e small e with grave (14/8)
[Circumflex accent]
g Small c with Cedilla (14/7)
a Small a with grave (14/0)
) Clo'sing parenthesis
- Hyphen, -Minus
+ plus
q
Q
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
009
D10
011
012
[Tilde mark]
1
2
3
4
5
6
7
8
9
o
o
z
Z
e
E
R
r
t
Degree sign (11/0)
T
Y
y
u
i
o
U
I
o
P
P
i Small i with grave (14/12)
$ Dollar sign
- Equals
& Ampersand
COl
a
A
C02
C03
C04
s
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
803
B04
B05
B06
'507
B08
B09
B10
mDmaomD™
5
o
d
f
g
h
j
k
I
F
G
H
J
K
L
m
M
u with grave (15/19)
* Asterisk
<.Less Than
w
% Percent sign
§ Section sign (10/7)
> Greater than
u Small
x
c
v
b
n
W
X
C
V
B
N
, Comma
; Semicolon
. Colon
o Small 0 with grave (15/2)
Digita~
Interna~
Use
On~y
? Question mark
Period
/ Slash
Exclamation point
EL-0007Q--06
VSRM - Keyboard Processing
, 19-Apr-1988
Page 6-111
Italian Keyboard, 8-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
position
-------EOI
E02
E09
ElO
C12
Unshifted
---------
Commercial at
Number sign
[ Opening bracket
] Closing bracket
* Asterisk
@
*
Shifted
-------
1
2
9
0
\ Backslash
Italian Keyboard, 7-bit Characters, Typewriter keys
(Where different from a-bit Characters, Typewriter keys)
position
-------EOO
EOI
E02
E07
E09
E10
Ell
Dll
ell
C12
B09
B10
Unshifted
---------
[Grave accent]
£ British pound sign (2/3)
e
e
c;:
a
Small e with acute (5/13)
small e with grave (7/13)
Small c w/Cedilla (5/12)
Small a with grave (7/11)
) Closing parenthesis
i Small i with grave (7/14)
U Small u with grave (6/0)
* Asterisk
Colon
0 Small 0 with grave (7/12)
.
Shifted
------Dead
1
2
7
9
0
0
Degree sign (5/11)
== Equals
% Percent sign
§ Section sign (4/0)
/ Slash
Exclamation point
Italian Keyboard, 7-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
position
Unshifted
EOO
EOI
E02
E07
E08
E09
ElO
Ell
D1l
Cll
C12
B09
BlO
, Open Quote
@ Commercial at
Number sign
Dead
Circumflex Character
[ Opening bracket
] Closing bracket
) Closing parenthesis
Dead
Dead
* Asterisk
: Colon
Dead
mD~DDmDTM
*
A
Digital Internal Use Only
Shifted
- Tilde Char
1
2
7
a
9
o
Dead
= Equals
% Percent sign
\ Backslash
/ Slash
Exclamation point
EL-00070-06
VSRM - Keyboard Processing
6.14.16
19-Apr-1988
Page 6-112
Swiss (French) Keyboard (LK201-AK)
8-bit Characters, Typewriter keys
Posi tion .
Unshifted
EOO
! Exclamation mark
1
2
3
4
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
DOe
009
010
011
012
COl
5
6
7
8
9
o
, Apostrophe
[Circumflex accent]
q
w
e
r
Shifted
a
Degree sign (11/0)
+ Plus
" Quotation marks
Asterisk
9 Small c w/Cedilla (14/7)
% Percent sign
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]
*
Q
W
E
R
T
t
z
Z
u
i
o
U
I
o
p
P
e
small e with grave (14/8)
[Dieresis]
a
s
small u w/umlaut (15/12)
[Tilde mark]
ij
A
C02
C03
C04
d
f
o
COS
g
G
C06
C07
C08
C09
C10
C11
C12
800
801
802
803
804
805
806
807
h
j
k
I
H
Small e with acute (14/9)
Small a with grave (14/0)
$ Dollar sign
< Less Than
small 0 w/umlaut (15/6)
small a w/umlaut (14/4)
£ U.K. Pound (10/3)
> Greater than
80e
Comma
Period
- Hyphen, Minus
809
810
momDomD™
S
F
J
K
L
e
a
o
a
y
y
x
X
c
C
v
b
V
8
N
n
m
M
Digital Internal Use Only
Semicolon
Colon
Underline
19-Apr-1988
EL-00070-06
VSRM - Keyboard Processing
Page 6-113
Swiss (French) Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
unshifted
Shifted
--------
---------
-------
E04
011
C10
C11
C12
4
@
small e with grave ( 14/8)
Small e with acute (14/9)
Small a with grave (14/0 )
$ Dollar sign
\
e
e
a
[
]
i
Commercial at
Backslash
Opening bracket
Closing bracket
Number sign
Swiss (French)' Keyboard, 7-bit Characters, Typewriter keys
(Where different from a-bit Characters, Typewriter keys)
position
-------EOO
E04
011
012
C10
C11
C12
B10
Unshifted
Shifted
-------
---------
! Exclamation mark
4
e small e with
[Dieresis]
e Small e with
a Small a with
grave (5/15)
acute (5/11)
grave (4/0)
$ Dollar sign
- Hyphen, Minus
Dead
9 Small
U small
Dead
0 small
a small
Dead
Dead
c w/Cedilla (5/12)
u with umlaut (7/13)
ow/umlaut (7/12 )
a w/umlaut (7/11)
Swiss (French") Keyboard, 7-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position
-------EOO
E04
E12
011
012
C10
C11
C12
mDmDomD™
Unshifted
Shifted
---------
-------
!
Exclamation mark
4
A
Circumflex Char
Dead
" Quotation marks
Dead
Dead
$ Dollar sign
Digital Internal Use Only
Dead
@ Commercial at
'Open Quote
\ Backslash
T~lde Char
[ Opening bracket
] Closing bracket
i Number sign
-
EL-00070-06
VSRM - Keyboard Processing
6.14.17
19-Apr-1988
page 6-114
Swiss (German) Keyboard (LK201-AL)
8-bit Characters, Typewriter keys
Position
Unshifted
Shifted
EOO
1 Exclamation mark
o
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
1
+ Plus
2
3
4
Quotation marks
Asterisk
9 Small c w/Cedilla (14/7)
% Percent
& Ampersand
/ Slash
( opening parenthesis
) Closing parenthesis
- Equals
? Question mark
[Grave accent]
DOS
006
007
008
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
800
801
,802
803
804
805
806
807
808
809
810
mDmDDmD™
(11/0)
n
*
5
6
7
8
9
o
, Apostrophe
[Circumflex accent]
q
Q
w
e
W
r
t
R
E
T
z
Z
u
i
o
U
I
o
P
P
ij
small u w/umlaut (15/12)
[Dieresis]
e
a
A
small e with grave (14/8)
[Tilde mark]
s
S
d
f
9
h
j
k
D
F
G
H
J
K
L
I
o
Degree sign
small 0 with umlaut (15/6)
it small a with umlaut (14/4)
$ Dollar sign
< Less Than
y
x
c
e
a
Small e
Small a
£ 8ritish
> Greater
with acute (14/9)
with grave (14/0)
pound sign (10/3)
than
y
X
C
v
V
8
N
M
b
n
m
Comma
Period
- Hyphen, Minus
Digital. Internal. UseOnl.y
Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-115
Swiss (German) Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
Unshifted
--------
---------
E04
011
C10
C11
C12
Shifted
-------
4
@
ii small u w/umlaut (15/12)
\
0 small 0 with umlaut (15/6) [
a small a with umlaut (14/4) ]
$ Dollar sign
#
Commercial at
Backslash
Opening bracket
Closing bracket
Number sign
Swiss (German) Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
position
Unshifted
Shifted
--------
---------
-------
EOO
E04
011
012
C10
C11
C12
B10
! Exclamation mark
Dead
Small
~
ii small u with umlaut ( 7/13) e small
[Dieresis]
Dead
0 small o with umlaut (7/12) e Small
a small a with umlaut (7/11) a Small
Dead
$ Dollar sign
- Hyphen, Minus
Dead
4
c w/Cedilla (5/12)
e with grave (5/15)
e with acute ( 5/11 )
a with grave (4/0 )
Swiss (German) Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
--------
EOO
E04
E12
011
012
C10
C11
C12
mDmDomo™
Unshifted
--------!
Exclamation mark
4
"
Circumflex Char
Dead
" Quotation marks
Dead
Dead
$ Dollar sign
Digital Internal Use Only
Shifted
-------
Dead
@ Commercial at
, Open Quote
\ Backslash
Tilde Char
[ Opening bracket
] Closing bracket
# Number sign
-
EL-00070-06
VSRM - Keyboard processing
6.14.18
19-Apr-1988
Page 6-116
Swedish Keyboard (2nd, LK201-NM)
8-bit Characters, Typewriter keys
Position
Unshifted
Shifted
EOO
EOl
E02
E03
E04
E05
E06
E07
E08
E09
ElO
Ell
El2
DOl
D02
D03
D04
DOS
D06
007
DOS
D09
D10
Dl1
Dl2
COl
C02
C03
C04
COS
C06
C07
COS
C09
C10
C11
Cl2
800
801
802
803
804
805
806
807
808
809
810
... Tilde Char
1
Degree sign (11/0)
Exclamation mark
" Quotation marks
S Section sign (10/7)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
, Open Quote
mDmDDmD™
2
3
4
5
6
7
8
9
o
+ plus
A
Circumflex Char
q
w
o
Q
W
E
e
r
t
R
y
Y
U
I
T
u
i
o
p
o
P
a
Small a with ring (14/15)
U small u with umlaut (15/12)
A Capital
a
A
o Capital
s
S
d
f
D
F
G
H
J
K
L
g
h
j
k
1
o
a
small 0 with umlaut (15/6)
small a with umlaut (14/4)
, Apostrophe
< Less Than
z
x
c
o Capital
*
Z
n
M
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Asterisk
> Greater than
m
b
0 w/umlaut (13/6)
A capital A w/umlaut (12/4)
X
C
V
8
N
v
A with ring (12/5)
U w/umlaut (13/12)
Semicolon
Colon
Underline
EL-00070-06
. VSRM - Keyboard Processing
19-Apr-1988
Page 6-117
Swedish Keyboard, 8-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
E03
D11
D12
C10
C11
3
] Closing bracket
i Number sign
} Close brace
I Vertical line
@ commercial at
[ Opening bracket
\ Backslash
{ Open brace
I Vertical line
Swedish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------EOO
E03
E12
D11
D12
C10
C11
Unshifted
--------..
Dead
3
Dead
a Small a with ring (7/13)
ii small u with umlaut (7/14 )
0 small 0 with umlaut (7/12 )
a small a with umlaut (7/11 )
Shifted
-------
Dead
Dead
Dead
A Capital A with ring (5/13)
ij Capital U w/Umlaut (5/14 )
0 Capital 0 w/umlaut ( 5/12)
A Capital A w/umlaut (5/11)
Swedish Keyboard, 7-bit Characters, Data Processing keys
(Where differ-ent from a-bit Characters, Typewriter keys)
Position
-------EOO
E03
D11
D12
C10
C11
mDmDomD™
Unshifted
--------..
Tilde Char
3
] Closing bracket
# Number sign
} Close Brace
I Vertical line
Digital Internal Use Only
Shifted
-------
Dead
@ Commercial at
[ Opening bracket
\ Backslash
{ Open Brace
I Vertical line
EL-00070-06
VSRM - Keyboard Processing
6.14.19
19-Apr-1988
Page 6-118
Swedish Keyboard (1st, LK201-AM)
8-bit Characters, Typewriter keys
Position
Unshifted
Shifted
EOO
[Tilde mark]
1
2
3
Degree sign (11/0)
Exclamation mark
" Quotation marks
S Section sign (10/7)
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
4
5
6
7
8
9
o
+ plus
[Circumflex accent]
o
q
Q
w
e
DOS
t
006
D07
008
009
010
011
012
y
u
i
W
E
R
T
Y
U
I
o
o
p
P
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
mDmDomD™
r
a
Small a with ring (14/15)
A Capital A with ring (12/5)
U small u with umlaut (15/12)
Capital U w/Umlaut (13/12)
a
A
s
S
o
o
d
f
9
h
j
k
1
F
G
H
J
K
L
a
small 0 with umlaut (15/6)
small a with umlaut (14/4)
, Apostrophe
< Less Than
Z
a
x
o Capital
0 w/umlaut (13/6)
w/umlaut (12/4)
A Capital A
* Asterisk
> Greater than
Z
X
C
c
v
V
B
N
b
n
m
M
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-119
Swedish Keyboard, 8-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
E03
011
012
3
] Closing bracket
• Number sign
@ Commercial at
[ Opening bracket
\ Backslash
Swedish Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
EOO
E03
E12
011
012
C10
C11
Dead
3
Dead
a Small a with ring (7/13)
il small u with umlaut (7/14)
o small 0 with umlaut (7/12)
a small a with umlaut (7/11)
--------
---------
Shifted
-------
Dead
Dead
Dead
A Capital
(j Capital
0 Capital
A Capital
A with ring (5/13)
U w/umlaut ( 5/14 )
0 w/umlaut (5/12)
A w/umlaut ( 5/11)
Swedish Keyboard, 7-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
EOO
E03
E12
011
012
C10
C11
mDmDomD™
-Unshifted
Dead
3
Dead
Dead
i Number sign
o small 0 with umlaut (7/12)
a small a with umlaut (7/11)
Digital Internal Use Only
Shifted
Dead
Dead
Dead
Dead
Dead
Capital 0 w/umlaut (5/12)
A Capital A w/umlaut (5/11)
o
EL-00070-06
VSRM - Keyboard Processing
6.14.20
19-Apr-1988
Page 6-120
Norwegian Keyboard (2nd, LK201-EN)
8-bit Characters, Typewriter keys
Position
Unshifted
--------
-1 Tilde
EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012
COl
CO2
C03
C04
C05
C06
C07
C08
C09
e10
ell
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
~DmDDmDTM
---------
Char
2
3
4
5
6
7
8
9
0
+, Plus
Apostrophe
q
w
e
r
t
Y
u
i
a
@
"
#
$
%
&
/
(
)
=
?
,
Commercial at
Exclamation mark
Quotation marks
Number sign
Dollar sign
Percent
Ampersand
Slash
Opening parenthesis
Closing parenthesis
Equals
Question mark
Open quote
Q
w
E
R
T
y
U
I
0
P
0
P
Shifted
-------
Small a with ring (14/5)
" Quotation marks
A Capital A wiring (12/5)
A
a
s
d
f
g
h
A
S
0
Circumflex Character
F
G
H
j
J
k
1
K
~
12
".IE Capital
Capital
L
Small 0 with slash (15/8)
Small ae dipthong (14/6)
, Apostrophe
< Less Than
z
x
c
v
b
n
m
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
*
0 w/slash (13/8)
AE dipthong(12/6)
Asterisk
> Greater than
Z
X
C
V
B
N
M
Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-121
Norwegian Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
011
C10
} Closing brace
I Vertical bar
{ Opening brace
] Closing bracket
\ Backslash
[ Opening bracket
ell
Norwegian Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
--------
--------a Small a
with ring (7/13)
f2I Small o with slash
(7/12)
a! Small ae dipthong (7/11 )
Comma
period
- Hyphen, Minus
011
C10
C11
B08
B09
B10
Shifted
-------
A Capital A w/ring (5/13)
Capital 0 w/slash (5/12)
Capital AE dipthong (5/11)
; Semicolon
Colon
Underline
fa
1£
..
Norwegian Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------011
C10
C11
mDmDomD™
.
Unshifted
--------} Closing brace
I vertical bar
{ Opening brace
Digital Internal Use Only
Shifted
-------
] Closing bracket
\
[
Backslash
Opening bracket
EL-00070-06
VSRM - Keyboard Processing
6.14.21
19-Apr-1988
Page 6-122
Norwegian Keyboard (1st, LK201-AN)
8-bit Characters, Typewriter keys
Position
unshifted
Shifted
EOO
[Tilde mark]
1
2
3
Degree sign
Exclamation mark
" Quotation marks
S Section sign
$ Dollar sign
% Percent
& Ampersand
/ Slash
( Opening parenthesis
) Closing parenthesis
= Equals
? Question mark
[Grave accent]
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
momDomD™
4
5
6
-7
8
9
o
+ plus
[Acute accent]
o
q
Q
w
e
W
E
R
r
t
u
i
T
Y
U
I
o
o
y
p
p
a
Small a with ring (14/5)
[Dieresis]
a
A Capital
s
S
D
d
f
g
h
j
k
I
A wiring (12/5)
[Circumflex accent]
A
F
G
H
J
K
L
m Small
0
with slash (15/8)
m Small ae dipthong (14/6)
, Apostrophe
< Less Than
z
e
Capital 0 w/slash (13/8)
Capital AE dipthong(12/6)
* Asterisk
> Greater than
~
c
Z
X
C
v
b
n
V
B
N
m
M
x
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
Semicolon
Colon
Underline
EL-00070;;..06
VSRM - Keyboard processing
19-Apr-1988
Page 6-123
Norwegian Keyboard, 8-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
-------E03
D11
C11
Unshifted
Shifted
---------
-------
3
@
Closing bracket
# Number sign
[ Opening bracket
]
Commercial at
'\ Backslash
Norwegian Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
position
Unshifted
Shifted
EOO
Dead
3
Dead
a Small a with ring (7/13)
[Dieresis]
m Small 0 with slash (7/12)
~ Small ae dipthong (7/11)
[Ring mark]
Dead
Dead
A Capital A wiring (5/13)
Dead
o Capital 0 wlslash (5/12)
m Capital AE dipthong(5/11)
E03
E12
D11
D12
C10
C11
Norwegian Keyboard, 7-bit Characters, Data Processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
unshifted
Shifted
EOO
Dead
3
Dead
Dead
[Dieresis]
m Small 0 with slash (7/12)
# Number sign
[Ring mark]
Dead
Dead
Dead
Dead
o Capital 0 wlslash (5/12)
Dead
E03
E12
D11
D12
C10
C11
mDmDomo™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.14.22
19-Apr-1988
Page 6-124
Belgian/French Keyboard (LK20l-AP)
8-bit Characters, Typewriter keys
position
EOO
EOI
E02
E03
E04
E05
E06
E07
E08
E09
ElO
Ell
El2
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
ClO
Cll
Cl2
BOO
BOI
B02
B03
B04
B05
B06
B07
B08
B09
BlO
mDmDomo™
Unshifted
Shifted
[Grave accent]
[Tilde mark]
& Ampersand
1
2
3
4
e
Small e with acute (14/9)
" Quotation marks
, Apostrophe
( Opening parenthesis
§ Section sign (10/7)
e small e with grave (14/8)
Exclamation point
9 Small c w/Cedilla (14/7)
Small a with grave (14/0)
) Closing parenthesis
Hyphen, Minus
a
5
6
7
8
9
o
o
a
z
e
A
r
R
T
Y
z
E
t
y
u
i
U
I
o
p
[Circumflex accent]
$ Dollar sign
q
s
d
f
g
h
j
k
I
m
<
o
P
[Dieresis]
* Asterisk
Q
S
o
F
G
H
J
u Small
i
Degree sign (11/0)
underline
u with grave (15/9)
Number sign
Less Than
K
L
M
% Percent sign
@ Commercial at sign
> Greater than
w
w
x
X
C
c
v
V
b
n
, Comma
Semicolon
Colon
= Equals
Digital Internal Use Only
B
N
? Question mark
Period
Slash
+ plus
/
EL-00070-06
VSRM - Keyboard Processing
Page 6-125
19-Apr-1988
Belgian/French Keyboard, 8-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
position
-------E06
E07
C11
Unshifted
---------
Opening bracket
Closing bracket
\ Backslash
[
)
Shifted
------6
7
% Percent sign
Belgian/French Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
-------EOO
E02
E06
E07
E09
E10
Ell
C11
C12
Unshifted
---------
[Grave accent]
Small e with acute (7/11)
Section sign (5/13)
small e with grave (7/13 )
Small c w/Cedilla (5/12)
Small a with grave (4/0 )
) Closing parenthesis
ii Small u wi th grave (7/12 )
Dead-
,
e
S
e
Shifted
-------
Dead
2
6
7
9
0
0
Degree sign ( 5/11)
% Percent sign
Dead
Belgian/French Keyboard, 7-bit Characters, Data processing keys
(Where different from a-bit Characters, Typewriter keys)
Position
Unshifted
EOO
E02
E06
E07
E09
E10
Ell
D11
C11
Open Quote
Dead
[ Opening bracket
] Closing bracket
Dead
Dead
) Closing parenthesis
....
Circumflex Char
\ Backslash
--------
mDmDomD™
--------,
Digital Internal Use Only
Shifted
------..
Tilde Char
2
6
7
9
0
Dead
" Quotation marks
% Percent sign
EL-00070-06
VSRM - Keyboard processing
6.14.23
19-Apr-1988
Page 6-126
Spanish Keyboard (LK201-AS)
8-bit Characters, Typewriter keys
position
Unshifted
EOO
l
E01
E02
E03
E04
1
EOS
5
6
7
8
E06
E07
EOa
E09
E10
Ell
E12
001
002
003
004
DOS
006
D07
Doa
009
010
011
012
COl
C02
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
BOO
B01
B02
B03
B04
BOS
B06
B07
B08
B09
B10
momDDmD™
Shifted
Inverted Question (11/15)
"
#
$
%
2
3
4
&
9
o
, Apostrophe
Masc. ordinal ind (11/10)
2
q
w
/
(
)
-
?
A
Q
Inverted exclamation (10/1)
Exclamation point
Quotation marks
Number sign
Dollar sign
Percent sign
Ampersand
Slash
Opening parenthesis
closing parenthesis
Equals
Question mark
Fem. ordinal ind (10/10)
w
e
u
i
E
R
T
Y
U
I
·0
o
r
t
y
P
[Grave accent]
+ Plus
P
a
s
A
S
[Circumflex accent]
Asterisk
*
d
f
9
h
j
k
I
o
z
Z
X
F
G
H
J
K
L
n
Small n with Tilde (15/1) N Capital N w/Tilde (13/1)
[Acute accent]
[Dieresis]
[Tilde mark]
~ Small c w/Cedilla (14/7)
< Less Than
> Greater than
x
c
v
b
n
m
C
V
B
N
M
Comma
Period
- Hyphen, Minus
Digital Internal Use Only
; Semicolon
Colon
Underline
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988.
Page 6-127
Spanish Keyboard, a-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
position
Unshifted
Shifted
EOO
@ Commercial at
] Closing bracket
\ Backslash
[ Opening bracket
E12
Spanish Keyboard, 7-bit Characters, Typewriter keys
(Where different from a-bit Characters, Typewriter keys)
position
unshifted
Shifted
EOO
Inverted Question (5/13)
3
Dead
fi Small n w/Tilde (7/12)
9 Small c w/Cedilla (7/13)
i Inverted exclamation (5/11)
Dead
Dead
N Capital N w/Tilde (5/12)
[Tilde mark]
E03
El2
C10
C12
l
Spanish Keyboard, 7-bit Characters, Data Processing keys
(Where different from a-bit Characters, Typewriter keys)
Position
EOO
E12
D11
C10
C11
C12
mDmDomD™
Unshifted
@ Commercial at
. ] Closing bracket
, Open quote
Dead
, Apostrophe
Dead
Digital Internal Use Only
Shifted
\ Backslash
[ Opening bracket
Circumflex character
Dead
" Quotation marks
- Tilde character
A
EL-00070-06
VSRM - Keyboard processing
6.14.24
19-Apr-1988
Page 6-128
portuguese Keyboard (LK20l-AV)
8-bit Characters, Typewriter keys
Position
Unshifted
Shifted
EOO
EOI
E02
E03
E04
EOS
E06
E07
E08
E09
ElO
Ell
E12
001
002
003
004
005
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
ClO
Cll
C12
BOO
BOI
B02
B03
B04
BOS
B06
B07
B08
B09
B10
Backslash
1
2
3
4
5
6
7
8
9
0
- Hyphen, Minus
- Equals
q
w
e
r
t
vertical line
Exclamation point
@ Commercial at
Number sign
$ oollar sign
% Percent sign
" Quotations
& Ampersand
* Asterisk
Opening parenthesis
Closing parenthesis
Underline
+ Plus
--------
mDmDDmD™
---------
"
*
Q
W
E
R
T
Y
U
I
Y
u
i
0
o
P
[Acute accent]
] Closing bracket
a
s
d
f
g
h
P
[Grave accent]
} Closing brace
A
S
o
F
G
H
j
J
k
1
K
L
~
~
Small c w/cedilla (14/7)
[Tilde mark]
[ Opening bracket
< Less Than
z
x
c
v
b
n
m
Comma
Period
/ Slash
Digital Internal Use Only
Capital C w/cedilla (12/7)
[Circumflex accent]
{ Opening brace
> Greater than
z
X
C
V
B
N
M
Semicolon
Colon
? Question mark
BL-00070--06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-129
Portuguese Keyboard, 8-bit Characters, Data Processing keys
8-bit Characters Data Processing Keys are the same-as 8-bit
Characters Typewriter Keys.
Portuguese Keyboard, 7-bit Characters, Typewriter keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
Shifted
BOO
Dead
Dead
9 Small c wlCedilla (7/12)
Dead
Dead
Dead
~ Capital C w/Cedilla (5/12)
Dead
012
C10
C12
portuguese Keyboard, 7-bit Characters, Data processing keys
(Where different from 8-bit Characters, Typewriter keys)
Position
Unshifted
011
C10
C11
Apostrophe
Dead
Tilde character
--------
.~DmDDmDTM
--------,
-
Digital Internal Use Only
Shifted
------, Open quote
Dead
... Circumflex character
EL-00070-06
VSRM - Keyboard Processing
6.14.25
19-Apr-1988
Page 6-130
DECmate/WPS Main Key Array
Th~ LK201-Bx Main Key Array is identical tOLK20l- Ax class, where
x specifies the country, except that the Delete Key (El3) has the
words Word and Char inste~d of Delete along with the "delete
backward" symbol. In addition, the LK201-Bx main key array has
the following gold legends on the front edge of the keys as shown
below for the North American Version LK201-BA.
Id
EOO
E01
E02
E03
E04
E05
E06
E07
E08
E09
E10
Ell
E12
001
002
003
004
DOS
006
007
008
009
010
011
012
COl
CO2
C03
C04
COS
C06
C07
C08
C09
C10
C11
C12
C13
BOO
B01
B02
Lower
Upper
-----
quote
1
2
3
4
5
6
7
8
9
0
- minus
- equals
.. tilde
ex.clamation mark
@ Commercial at
i number sign
$ dollar sign
% percent
... circumflex
& ampersand
* asterisk
( open paren
) close paren
-+ underline
plus
----, open
0
W
E
R
T
Front edge
---------Halt
Print Hyph
Abbrv
Super Script
Ruler
Top Docmt
y
U
I
0
P
[ open bracket
{ open brace
] close bracket } close brace
A
S
0
F
G
H
Page Marker
Cmnd
Sub Script
Dead Key
File Docmt
Get Docmt
J
K
L
; semicolon
,
apostrophe
\ backslash
Return
< less than
Z
Libry
colon
" double quote
vertical line
> greater than
x
mDmDDmD™
Digital Internal Use Only
Replc
Date & Time
Para marker
EL-00070-06
VSRM - Keyboard processing
page 6-131
19-Apr-1988
LK201- BA Main Key Array Continued
rd
B03
B04
B05
B06
B07
B08
B09
B10
Lower
Upper
-----
-----
C
V
B
N
M
Center
View
Bot Docmt
New Page
Menu
, comma
Srch
period
cont Srch
? question mark cont Srch
,
comma
period
/ slash
.
mDmDomD™
Front edge
----------
.
Digital Internal Use Only
&
Sel
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-132
The LK201-PA is identical to the LK201-NA and the LK201-PE is
identical to the LK201-RE except for the gold legends on the front
edge. Note that the gold legends on the front edge of the LK201Px are not identical to the LK201- Bx.
The difference between the LK201-RE and the LK201-NA is the front
legends on the editing and numeric keypads. Therefore, the
example below shows the LK201- Px, where x can be either {A, E}.
6.14.25.1
English WPS- LK201- {PA, PEl Legend
Id
EOO
E01
E02
E03
E03**
E04
E05
E06
E07
E08
E09
E10
Ell
E12
E13
Lower
Upper
, open quote
- tilde ch
exclamation mark
@ Commercial at
# number sign
1
2
3
3
4
5
6
7
8
9
o
- minus
- equals
DOS
T
011
012
$ dollar sign
% percent
circumflex
& ampersand
* asterisk
open paren
close paren
underline
-+ plus
A
greater than
Libry
Global Replc
Replc
Date & Time
Para Marker
Status
Z
X
C
V
B
N
M
, comma
• period
/ sl-ash
, comma
. period
? question mark
Digital Internal Use Only
Center
View
Bot Docmt
New page
Menu
Srch
Cont Srch
Cont Srch & Sel
EL-00070-06
VSRM - Keyboard Processing
6.15
19-Apr-1988
Page 6-134
COMPOSE OPERATION
Compose is used to generate characters which cannot be typed
directly from the keyboard. Since there are many keyboards, some
characters will be producible both via compose and via direct
keyboard input. Characters often generated by compose include
many of the accented European characters, special symbols such as
the Yen Sign, and other normal characters not available on the
particular keyboard.
There are two forms of compose sequences:
1.
Implied compose sequence - a two key sequence initiated
by a Non-spacing Diacritical key.
2.
Explicit compose sequence - a three key sequence
initiated by the Compose key.
Graphic character keys used during an implied or explicit compose
sequences are not auto-repeatable. This prevents the terminal
user from accidentally repeating a key during a compose sequence.
6.15.1
Compose with The Use Of The COMPOSE Key
All characters which are not directly available on the keyboard
can be generated with the use of the COMPOSE key followed by a two
character generating sequence called a compose sequence. Many
composable characters have more than one compose sequence, and can
therefore be composed in more than one way. To compose a
character the user types the following 3 keystrokes:
1.
2~
3.
COMPOSE
Character 1 (or Mark)*
Character 2 (or Mark)*
* Mark is used to mean a non-spacing diacritical mark or
accent.
When the user types the COMPOSE key, the COMPOSE LED is turned on
to indicate that a compose is in progress. When the compose ends
either successfully, by the depression of the delete key, or with
an error, then the COMPOSE LED is turned off. If the Character 1
and Character 2 pair form a valid compose sequence, then the
compose is successful and the composed character is sent. If the
Character 1 and Character 2 pair do not form a valid compose
sequence then the Warning Bell rings once, if enabled in Set-up,
to indicate a compose error, and no character is ~ent.
mDmDomD™
Digita1 Interna1 Use On1y
19-Apr-1988
EL-~0070~06
Page 6-135
VSRM - Keyboard Processing
6.15.2
Compose with The Use Of Non-Spacing Diacritical Marks
Many characters which are not directly available on the keyboard
can be generated with the use of the implied compose feature.
Non-Spacing Diacritical keys do not independently transmit
character codes, but shall be used in combination with other keys.
When these marks are typed an "implied compose" begins with the
non-spacing diacritical mark as the first half of the compose
sequence. Such an implied compose consists of two keystrokes as
follows:
1.
2.
Non-Spacing Diacritical Mark
Character
When the user types the non-spacing diacritical mark, the COMPOSE
LED is turned on to indicate that a compose is in progress. When
the compose ends either successfully, by depression of the delete
key, or with an error, then the COMPOSE LED is turned off. If the
non-spacing diacritical mark and character pair form a valid
compose sequence, then the compose is successful and the composed
character is sent. If the non-spacing diacritical mark and
character pair do not form a valid compose sequence then the
Warning Bell rings once, if enabled in Set-up, to indicate a
compose error, and no character is sent.
Digital Internal Use Only
19-Apr-1988
EL-00070-0&
VSRM - Keyboard Processing
6.15.3
Page 6-136
Composing Arbitrary 8-bit Characters (VT330/340 Only, Not
Mandatory)
When the user types the COMPOSE key, and follows that key with two
keys from the numeric keypad, an arbitrary 8-bit character is
generated based on which numeric keypad keys are pressed. The two
keys pressed specify an 8-bit code in hexadecimal digits: the 0
through 9 keys specify the hexadecimal digits 0 through 9; the
hexadecimal digits A through F are specified by the following
keys:
Key Name
Hexadecimal Digit
PF1
PF2
PF3
PF4
Minus
Comma
A
B
C
o
E
F
The entire numeric keypad can then be thought of as a hexadecimal
keypad:
+---+---+---+---+
I A I B I C 101
+---+---+---+---+
I 7 I 8
I 9 I E I
+---+---+---+---+
I 4 I 5 I 6 I F I
+---+---+---+---+
I
1
I
2
I
3
I
*
* pressing either the Enter or
Period keys will abort the
compose sequence, and cause the
function key to be sent to the
host.
I
+---+---+---+
I
I
0
I
* I
I
+-------+---+---+
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-137
Notes:
1.
Mixing a numeric keypad key and a main keypad key is not
allowed, and will cause an error condition: the COMPOSE
is aborted and the warning Bell is rung.
2.
Arbitrary 8-bit composition obeys the C1 transmission
state.
If 7-Bit Controls are enabled, and C1 control
generated by using compose on the numeric keypad is sent
in the 7-Bit ESC Fe form.
3.
In VT52, VT100, and 4010/4014 modes,or in National
character set mode, full 8-bit characters may not be
generated by using compose on the numeric keypad.
If the
VT330/340 is in one of these modes, and the first key hit
on the numeric keypad is 8, 9, PF1, PF2, PF3, PF4, Minus,
or Comma, the COMPOSE is aborted and the Warning Bell is
rung.
4.
This function is not affected by the setting of DECNKM
(Numeric Keypad mode).
momDomD
TM
Digital Internal Use Only
EL-00070-06
VSRM- Keyboard Processing
6.15.4
19-Apr-1988
Page 6-138
Use Of The COMPOSE Key When A Compose Is Already In
Progress
If the compose key is pressed while a compose sequence is in
progress then the current compose sequence will be terminated and
a new sequence will begin. The compose indicator remains on, the
warning bell is not rung, no code is transmitted and a keyclick is
generated if enabled.
6.15.5
Use Of The DELETE Key When A Compose Is Already In
Progress
Typing the DELETE key will abort the compose immediately. No
character is sent, the COMPOSE LED is turned off and the bell is
not rung.
momDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.15.6
19-Apr-1988
Page 6-139
Keystrokes Which Abort Compose Immediately
A keystroke on any of the following keys aborts the compose in
progress, does not ring the bell, sends no character codes, turns
off the COMPOSE LED, and performs the local function normally
performed by the keystroke:
o
o
o
o
o
Hold Screen Key
Print Screen Key
Set-up Key
Switch Session Key
Break Key
A Keystroke on any of the following keys (or key combinations)
aborts the compose in progress, does not ring the bell, does not
send the character code for any character entered earlier in the
compose sequence, and sends the character code or codes normally
transmitted by the keystroke which aborts the sequence:
o
o
o
o
o
o
o
Keypad keys
Function keys F6 through F20 including HELP and DO
Tab key
Return key
Ctrl-A through Ctrl-Z and all other Ctrl-Key combinations
which produce control codes
Edit keypad keys
ESC, BS and LF (F11, F12 and F13 in VT100 mode)
The Delete key aborts the compose, does not ring the bell, sends
no character codes and turns off the COMPOSE LED.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.15.7
19-Apr-1988
page 6-140
Keystrokes Which Do Not Affect Compose Directly
The following keys do not affect compose directly but they may
affect compose indirectly. Their actions.are the normal keyboard
actions:
o
o
6.15.8
Shift
Control (When held alone)
Order And Case within Compose Sequences
The importance of the order and case (upper or lower) of the two
characters used to form a compose sequence depends on the
character being composed.
6.15.8.1
Order-
The sequences for characters which have an obvious order (e.g.,
the "OE" ligature or the "~" fractiori) may not be reversed, while
those for other characters may be. When the Compose key is used
to initiate the sequence, the two following keys may be depressed
in either order, unless the table entry for the composite
character says "in order". When a Non-Spacing Diacritical key is
used to initiate the sequence (implied compose), the diacritical
key precedes the other key in the sequence.
6.15.8.2
Case-
The sequences for generating alphabetic characters are case
sensitive, while those for other symbols are not.
In instances
where two alphabetic keys are used in the sequence, the minimum
conforming implementation requires that the sequences of both keys
in upper case and both keys in lower case be provided.
It is
optional to also provide the sequences in which one key is upper
case and the other lower case.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.15.9
19-Apr-1988
Page 6-141
Composition Conventions
Mark is used to mean non-spacing diacritical mark. Some marks are
also called accents. Each non-spacing diacritical mark has a
character associated with it in the a-bit Multinational character
sets. Note that the mark, or accent, is not strictly the
equivalent of its associated character.
Mark
Associated Character
Tilde mark
Acute accent
Circumflex accent
Ring mark
Dieresis or umlaut mark
Grave accent
Cedilla
- Tilde character
, Apostrophe
Circumflex character
o (degree sign) or asterisk
It Double quote
, Open quote
, Comma
A
Grave accent, tilde, and circumflex appear on all keyboards
Diaeresis/umlaut mark and acute accent appear on certain non-US
keyboards and are always Non-Spacing Diacritical keys.
To
distinguish diaeresis/umlaut mark from quotation marks (It) which
both appear on some keyboards, the diaeresis/umlaut mark is shown
as two raised dots and quotation marks are short vertical lines on
the key legends. Similarly, the acute accent is slanted and the
apostrophe is" shown vertical on the key legends.
6.15.9.1
Compose Sequence Error Conditions -
There are three different classes of compose sequence errors that
may occur.
The first class consists of dead keys which do not transmit any
code. These include invalid control combinations, such as ctrl-9,
and any other keys that are dead in the current operating
environment. Dead keys are ignored within a compose sequence.
The second class consists of sequences prematurely terminated by
an illegal character.
Illegal characters are all valid control
combinations and all keys not from the main array of the keyboard.
This includes Tab, Return, the Cursor Keys, keys from the Editing
Keypad, keys from the Numeric Keypad, and the function keys
(including the Local Function Keys). Such compose sequences are
terminated as soon as the illegal character/key is typed.
The
compose led is turned off, and compose mode is exited. The
offending character/key is considered to be outside of the
sequence, and is handled normally (that is, a keyclick is
generated, if enabled, and the code for the offending
character/key is transmitted). The presence or absence of a
keyclick, when enabled, indicates to the terminal user whether
anything has been transmitted to the host or not.
~DmDDmDTM
Digital" Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-142
The third class of compose errors consists of sequences containing
legal characters from the main array of the keyboard but which do
not form a valid compose sequence. Such compose sequences are
terminated after the second character is typed.
The procedure
involves sounding the error bell (if it is enabled), turning off
the Compose LED, and exiting compose mode. No code is transmitted
by the terminal and nothing is displayed on the video display for
the invalid compose sequence. The audible sound for a compose
failure may be distinguishable from the sound produced by the
receipt of the BEL control character and may be separately
disabled via Set-up as an extension to Level 2.
momDDmD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.15.9.2
19-Apr-1988
Page 6-143
Syntax Of Compose Sequences -
The following syntax diagrams show all possible forms of valid and
invalid explicit and implied compose sequences. All keys are
divided into the following disjoint equivalence classes:
Symbol
Meaning
C
Compose Key
d
Non-Spacing Diacritical key
a
valid first key after Compose key
b.
valid second key after Compose key or first key
after a Non-Spacing Diacritical key
x
an invalid first key after Compose key
y
an invalid second key after Compose key or first
key after a Non-Spacing Diacritical key
F
any function key or control character on the main key
array or any other key outside of the main key array
(including Local Function Keys)
D
Delete key
c
is the resulting composed one-byte character
mDmDomD
TM
Digital Internal Use Only
EL-0007.0-06
VSRM - Keyboard processing
19-Apr-1988
Syntax
Action
Transmit
LED
bell
off
off
off
off
no
no
no
no
off
off
off
off
off
no
no
no
no
no
on
on
on
on
on
no
no
no
no
no
-------
Valid:
C a b
C a d
C d b
d b
c
c
c
c
Corrected by terminal user:
C
C
C
C
a
d
x
D
d
0
D
D
D
nothing
nothing
nothing
nothing
nothing
Started over by terminal user:
C
C
C
C
a
d
x
C
d
C
nothing
nothing
nothing
nothing
nothing
y
y
b
d
y
nothing
nothing
nothing
nothing
nothing
C
C
C
errors:
C
C
C
C
C
C
C
C
C
a
x
x
x
d
a
d
x
F
F
F
F
d F
d d
d y
mDmDomD™
off
off
off
off
off
F
off
off
F
F
off
F
off
F
off
nothing off
nothing off
yes
yes
yes
yes
yes
no
no
no
no
no
yes
yes
Digital Internal Use Only
Page 6-144
EL-00070-0-6
VSRM - Keyboard Processing
19-Apr-1988
Page 6-145
6.15.9.2.1 Compose Sequence Processing - The following algorithm
defines the sequence of events which shall occur during the
processing of an explicit or implied compose sequence. The
algorithm is entered by the depression of the Compose key or a
Non-Spacing Diacritical key. The Pascal coding which follows
provides a detailed specification of the compose sequence logic.
STEP 1: Process the first keystroke after the Compose key or process
the Non-Spacing Diacritical keystroke. If the keystroke is:
(1) Any graphic character key, Space Bar, or Non-Spacing Diacritical key:
proceed to STEP 2.
(2) A control character or any key not on the main key array:
turn off the compose indicator, and exit compose mode.
Then keyclick (if enabled) and transmit the code or
sequence for the key just pressed.
(3) Delete: turn off the compose indicator and exit compose mode.
Keyclick (if enabled). Note that the error bell is not sounded
and nothing is transmitted.
(4) Compose: restart the compose sequence, keyclick (if enabled), and
transmit nothing to the host until the new sequence is completed
successfully.
STEP 2: Process the second key after the Compose key or the
key following a Non-Spacing Diacritical key. If the keystroke is:
(1) A valid graphic character key or Non-Spacing Diacritical key
(as defined in the tables) and if the preceding key
is also valid: turn off the compose indicator, keyclick
(if enabled), and transmit the corresponding DEC Multinational
character code.
(2) An invalid graphic character key or Non-Spacing Diacritical key, or
the preceding key was invalid: ring the error bell, do not key
click, turn off the compose indicator, and exit compose mode.
(3) A control character or any key not on the main key array:
turn off the compose indicator, and exit compose mode.
Then keyclick (if enabled) and transmit the code or
sequence for the key just pressed.
(4) Delete: turn off the compose indicator and exit compose mode.
Keyclick (if enabled). Note that the error bell is not sounded.
(5) Compose: restart the compose sequence, keyclick (if enabled), and
transmit nothing until the new sequence is completed successfully.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-146
PROCEDURE PROCESS COMPOSE SEQUENCE (KEY: KEY_CODE);
(*
- -
This procedure is called whenever the Compose key or a Dead
Diacritical keystroke occurs and the terminal is not already
in compose mode.
The key code of the initiating key is passed in the call.
The procedure calls the following external routines, which
should be self-explanatory:
key :- GET NEXT KEY (KEY CODE);
TURN ON COMPOSE-LED;
TURN-OFF COMPOSE LED;
RING-ERROR BELL;GENERATE KEY CLICK;
TRANSMIT-COMPOSED CHAR (KEY 1, KEY 2: KEY_CODE);
TRANSMIT-CONTROL FUNCTION (KEY_1);
It also calls the function
VALID COMPOSE SEQUENCE(KEY 1, KEY 2: KEY CODE,
SUPPLEMENTAL_SET: VALID_SUPPLEMENTAL_SETS): BOOLEAN;
which returns True if the two keys form a valid compose
sequence as defined in the tables in this section.
*)
COMPOSE = (* the key code representing the Compose key *)
CONST
DELETE TYPE
(* the key code representing the Delete key *)
KEY CODE - 0 .. 255;
SPACE GRAPHIC DIACRITICAL SET - SET OF (* The key codes
representing SPACE and graphic characters from 2/0
to 7/14 inclusive, 10/1 to 15/14 inclusive, and the
Non-Spacing Diacritical characters *);
VAR
mDmDomD
KEY 1, KEY 2: KEY CODE;
IN COMPOSE-MODE: BOOLEAN;
TM
Digital Internal Use Only
EL-00070-06VSRM - Keyboard processing
19-Apr-1988
page 6-147
BEGIN.
TURN ON COMPOSE INDICATOR;
KEY I :; KEY;
IN COMPOSE MODE:- TRUE;
(* set loop flag, clear to exit loop *)
WHILE IN COMPOSE MODE DO (* restart on Compose key *)
BEGIN
WHILE KEY 1 • COMPOSE DO
BEGIN
GENERATE KEY CLICK;
KEY 1 :.-GET:NEXT_KEY;
END;
CASE KEY 1 OF
SPACE GRAPHICAL DIACRITICAL SET:
GENERATE_KEY_CLICK;
(* have KEY_1, go get KEY 2 *)
DELETE:
BEGIN
GENERATE KEY CLICK;
IN COMPOSE MODE :- FALSE;
END
OTHERWISE:
BEGIN
IN COMPOSE MODE :- FALSE;
GENERATE KEY CLICK;
TRANSMIT-CONTROL FUNCTION (KEY_l);
END
END;
(* end case on first key of pair *)
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-148
IF IN COMPOSE MODE THEN
(* Process second key of explicit or implied compose pair *)
BEGIN
KEY 2 :- GET NEXT KEY;
CASE KEY 2 OF
SPACE GRAPHIC DIACRITICAL SET:
IF-VALID COMPOSE SEQUENCE (KEY 1, KEY 2) THEN
BEGIN T* valid pair *)
GENERATE KEY CLICK;
TRANSMIT-COMPOSED CHAR (KEY 1, KEY 2);
IN COMPOSE MODE
FALSE; END
ELSE
(* invalid pair *)
ERROR_PROCEDURE;
:=
DELETE:
( * Delete
BEGIN
GENERATE KEY CLICK;
IN COMPOSE MODE :- FALSE;
END;
COMPOSE:
( * Compose
GENERATE KEY CLICK;
*)
*)
-
OTHERWISE: (* not Compose, SPACE, graphic, diacrit. or DEL *)
BEGIN
IN COMPOSE MODE :- FALSE;
GENERATE KEY CLICK;
TRANSMIT-CONTROL FUNCTION (KEY_2);
END
END;
(* end case *)
END; (* end case on second key of pair *)
END;
(* end loop that Compose Key starts over *)
TURN_OFF_LED;
END;
(* end procedure PROCESS_COMPOSE_SEQUENCE *)
PROCEDURE ERROR_PROCEDURE;
BEGIN
RING ERROR BELL;
IN COMPOSE-MODE :- FALSE;
END;
mDmDDmD™
Digital Internal Use Only
EL-00070....,06
VSRM - Keyboard processing
6.15.10
6.15.10.1
19-Apr-1988
Page 6-149
8-bit Characters Mode Valid Compose Sequences
Compose Sequences For Characters without Diacritical
Marks -
Note when the Compose key is used to initiate the sequence, the
two following keys may be depressed in either order, unless the
table entry explicitly says "in order".
CHARACTER
I
SEQUENCES
+ +
@
a a
[
(
\
/ /
)
{
)
(
/
1
}
No Break Space
<11 >
a
A
)
/ <
A
)
-
SP SP
1
i
Cent
Pound Sign
General currency
c /
L X 0
x 0
Y -
Yen
Broken vertical bar 1 1
Section Sign
S
s
Copyright
C 0
c 0
< a> Feminine ordinal
«<> Angle quotes left
<-,> Logical not sign
Soft hyphen
Reg. Trademark
mamDomo™
A A
(
a
C /
1 -
X 0
x 0
Y 1
c
L x 0
y S 0
5 0
C 0
c 0
< <
, (in order)
R 0
R 0
r 0
r
0
1 -
X 0
A
S 0
s 0
C 0
c 0
A
C
R 0
r 0
Digital Internal Use Only
y S 0
s
0
19-Apr-1988
EL-00070-06
VSRM - Keyboard Processing
<-"'>
<+->
<2"'>
<3"'>
< .... >
<1">
< 0>
<»>
<14>
<12>
<34>
<11>
<-D>
<0/>
<-d>
<-:>
<0/>
<0">
Macron
Plus-minus
Superscript 2
superscript 3
Mu, Micro sign
Paragraph
Middle dot
Superscript 1
Masculine ordinal
Angle quote right
Quarter
Half
Three Quarters
Inverted 1
AE ligature
Cap Icelandic Eth
OE ligature
times sign
0 slash
Icelandic Thorn
B
ae ligature
Sm Icelandic Eth
oe ligature
division sign
0 slash
Sm Icelandic Thorn
0
tilde character
open quote
apostrophe
<,,> acute accent
"
circumflex character
double quote
<""> dieresis
<,,> cedilla
mDmDomD™
page 6-150
+ -
2 ...
3 ...
/ u
/ U (in order)
P
p
1 "
o
0
> >
1 4 (in order)
1 2 (in order)
3 4 (in order)
1 1
A E (in order)
D -
o E (in order)
x x
o /
xx
xX
T H (in order)
s s
a e (in order)
d -
o e (in order)
o /
t h (in order)
o ..
SP 0 (space degree)
SP * (space asterisk)
SP - (space tilde-mark)
SP' (space open-quote)
space grave-accent
SP' (space apostrophe)
space acute-accent
"
(apostrophe apostrophe)
acute-accent acute-accent
Sp" (space circumflex-accent)
Sp" (space double-quote>
space dieresis
""
(double-quote double-quote)
dieresis dieresis
"
(comma comma)
Digital Internal Use Only
EL-00-070--06
VSRM - Keyboard processing
19-Apr-1988 .
page 6-151
6.15.10.2 Compose Sequences For Characters With Diacritical Marks
For composition of the following composite characters, either the
mark or the associated character(s) may be used in the compose
sequence. The compose sequence consists of one of the following:
o
o
o
o
o
Mark, Basic Character
COMPOSE, Associated Character, Basic Character
COMPOSE, Basic CAaracter, Associated Character
COMPOSE, Mark, Basic Character
COMPOSE, Basic Character, Mark
Where the basic character is the alphabetic character without the
accent or mark. For example the basic character in is U.
Mark
Associated
Character
Composite Characters
Grave Accent
, single quote
Acute Accent
, apostrophe
Circumflex Accent A circumflex
Tilde Mark
- tilde
Dieresis
or Umlaut Mark
" quotations
Ring Mark
* asterisk
or degree
Cedilla
, comma
~DmDDmDTM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.15.10.3
19-Apr~1988
Page 6-152
Non-Spacing Diacritical Marks By Keyboard -
See the position keyboard map for details.
The following is a
list of non-spacing characters which do an implied compose. The
list is by keyboard. The most recent or recommended variation for
each dialect is listed first.
Note: This table applies to
keyboard maps (as specified in Set-Up), not physical keyboards.
1.
North American (LK201-EE US/UK or LK201-AA) - none
2.
British (LK201-EE US/UK) - none
3.
British (LK201-AE)
EOO Tilde Mark
C12 Circumflex Mark
C12 Grave Accent
4.
Flemish (LK201-AB)
EOO Grave Accent
EOO Tilde Mark
011 Circumflex Accent
011 Dieresis
(shifted)
(shifted)
(shifted)
5.
Canadian (French)
(LK201-AC)
EOO Tilde Mark
C11 Grave Accent
C11 Circumflex Accent
(shifted)
6.
Danish (2nd, LK201-ED) - none
7.
Danish (1st, LK201-AO)
EOO Tilde Mark
E12 Acute Accent
E12 Grave Accent
012 Dieresis
012 Circumflex Accent
(shifted)
(shifted)
8.
Finnish (3rd, LK201-NX) - none
9.
Finnish (1st, LK201-AF)
EOO Tilde Mark
E12 Circumflex Accent
E12 Grave Accent
mDmDDmD™
(shifted)
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
10.
Austrian/German (2nd, LK201-NG) - none
11.
Austrian/German (1st, LK201-AG)
EOO Tilde Mark
EOO Circumflex Accent
(shifted)
E12 Acute Accent
E12 Grave Accent
(shifted)
12.
Dutch (2nd, LK201-NH) - none
13.
Dutch (1st, LK201-AH)
EOO Tilde Mark
011 Circumflex Accent
011 Dieresis
C11 Grave Accent
C11 Acute Accent
14.
Italian (LK201-AI)
EOO Grave Accent
EOO Tilde Mark
E08 Circumflex Accent
(shifted)
(shifted)
(shifted)
15.
Swiss (French)
(LK201-AK)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
012 Dieresis
012 Tilde Mark
(shifted)
16.
Swiss (German)
(LK201-AL)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
012 Dieresis
012 Tilde Mark
(shifted)
17.
Swedish
18.
Swedish (1st, LK201-AM)
EOO Tilde Mark
E12 Circumflex Accent
E12 Grave Accent
19.
mDmDomD™
(2nd, LK201-NM) - none
Norwegian
(shifted)
(2nd, LK201-EN) - none
Digital Internal Use Only
Page 6-153
EL--00070-06
VSRM - Keyboard processing
19-Apr-1988
20.
Norwegian (1st, LK201-AN)
EOO Tilde Mark
E12 Acute Accent
(shifted)
E12 Grave Accent
012 Oieresis
(shifted)
012 Circumflex Accent
21.
Belgian/French (LK201-AP)
EOO Grave Accent
EOO Tilde Mark
(shifted)
011 Circumflex Accent
011 Oieresis
(shifted)
22.
Spanish (LK201-AS)
011 Grave Accent
011 Circumflex Accent
C11 Acute Accent
C11 Oieresis
C12 Tilde Mark
23.
6.15.10.4
Portuguese (LK201-AV)
C11 Tilde Mark
C11 Circumflex Accent
011 Acute Accent
011 Grave Accent
Page 6-154
(shifted)
(shifted)
(shifted)
(shifted)
(shifted)
valid Compose Sequences And The Supplemental Character
Sets -
Depending on the Supplemental character set chosen in Set-up
(either DEC Supplemental or ISO Latin-l Supplemental), there are
some changes in the compose sequences available to create 8-bit
characters, as a direct result of the lack of some characters in
either of the character sets.
The following table specifies which characters are not available
in each of the supplemental character sets. Compose sequences
which choose the characters listed cannot be composed when that
supplemental character set is chosen through Set-Up:
momDomo™
Digital Internal Use Only
EL ... 00070,...06
VSRM - Keyboard Processing
DEC Supplemental
160
166
168
172
173
174
175
180
184
190
208
215
221
222
240
247
253
254
19-Apr-1988
Page 6-155
(not available)
no break space
broken vertical bar
<"A) dieresis
<-,> logical not
registered trademark sign
<_A) macron
<,,> acute accent
<,,> cedilla
<34> fraction three quarters
<-0> capital Icelandic Eth
times sign
capital Y with acute accent
capital Icelandic thorn
<-d> small Icelandic Eth
<-:> division sign
small y with acute accent
small Icelandic thorn
ISO Latin-1 Supplemental
(not available)
215 capital OE ligature
221 capital Y with dieresis
247 small oe ligature
There are also two characters in different positions between the
ISO Latin-l Supplemental and DEC Supplemental character sets. For
these two character sets, the appropriate compose sequence is
present when either set is invoked. Only the code transmitted to
the host changes:
Character
Name
DEC Supplemental
Coding
general currency
34 - "quotation
marks
168 _ <"A>
dieresis
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-156
This difference has been deprecated.
"
" should produce double quote in both DEC
Supplemental and ISO Latin-1.
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.15.11
6.15.11.1
19-Apr-1988
Page 6-157
7-bit Characters Mode Valid Compose Sequences
Typewriter Keys Valid Compose Sequences By Keyboard
(7-bit Characters) -
The following details all of the valid COMPOSE sequences for each
keyboard when the terminal is in 7-bit Characters mode, and
Typewriter Keys are selected. A separate selection of compose
sequences is given for Data Processing Keys, regardless of
Keyboard type, because when Data Processing keys is selected in
7-bit Characters mode, the ASCII character set, and not the
associated NRCS, is used in GO. No COMPOSE sequences other than
those listed for anyone keyboard are legal when that keyboard is
selected and is in 7-bit Characters mode. Note: This table
applies to keyboard maps as specified in Set-up, not physical
keyboards.
.
1.
North American (LK201-EE US/UK)
7-bit Characters mode is not available with the North
American keyboard.
2.
British (LK201-EE US/UK) - Typewriter Keys
Character
Sequences
" quotations
space quotations
quotations space
- L
L - 1
- L
L - 1
space apostrophe
apostrophe space
a a
A A
A a
UK pound
, apostrophe
@ commercial at
[ opening bracket
\ backslash
] closing bracket
- circumflex character
, grave accent
{ opening brace
I vertical bar
} closing brace
- tilde
~DmDDmDTM
(
1a A
(
/ /
)
1-
/ <
< /
)
space - (circumflex)
- (circumflex) space
space ' (grave accent)
, (grave accent) space
((
/
/
) -)
space - (tilde)
- (tilde) space
Digital Internal Use Only
EL-00070-06
V5RM - Keyboard processing
3.
19-Apr-1988
ilemish (LK201-AB) - Typewriter Keys
Character
5equences
" quotations
space quotations
quotations space
- L
L - 1
UK pound
, apostrophe
small a with grave
<0">
- L
L - 1
space apostrophe
apostrophe space
, (grave accent) a
a ' (grave accent)
0"
0
small ~ with cedilla
<50> §
o
, grave accent
small e with acute
small u with grave
small e with grave
,. circumflex
ll-
"0
space degree
degree space
space *
c,
, c
s
s
5
o s
s 0
0 5
o s
mDmDomD™
Page 6-158
s 0
0 5
* space
5
5 0
5 0
s
s 0,
0 5
5 0
space' (grave accent)
, (grave accent) space
apostrophe e
e apostrophe
, (grave accent) u
u ' (grave accent)
, (grave accent) e
e ' (grave accent)
space
" space
Digital Internal Use Only
EL-0007o--06
VSRM - Keyboard Processing
4.
19:"'Apr-1988
French (Canada) (LK201-AC) - Typewriter Keys
Character
Sequences
" quotations
space quotations
quotations space
+ +
space apostrophe
apostrophe space
grave a
a grave
circumflex-accent a
a circumflex-accent
, c
c ,
circumflex-accent e
e circumflex-accent
circumflex-accent i
i circumflex-accent
circumflex-accent 0
0 circumflex-accent
apostrophe e
e apostrophe
grave u
u grave
grave e
e grave
circumflex-accent u
u circumflex-accent
t pound (number) sign
, apostrophe
small a with grave
small a with circumflex
small c with cedilla
small e with circumflex
small i with circumflex
small o with circumflex
small e with acute
small u with grave
small e with grave
small u with circumflex
5.
Danish (2nd, LK201-ED) - Typewriter Keys
Character
Sequences
" quotations
space quotations
quotations space
+ +
space apostrophe
apostrophe space
aa
AA
Aa
A E
t pound (number) sign
, apostrophe
@ commercial
capital
<0/> capital
capital
~ circumflex
at
JE
0 with slash
A with ring
, grave accent
small ce
<0/> small 0 with slash
small a with ring
... tilde
mDmDomD™
Page 6-159
o /
/
aA
0
A asterisk
asterisk A
space ~
~ space
space' (grave accent)
, (grave accent) space
a e
o /
/ 0
a asterisk
asterisk a
space - (tilde)
- (tilde) space
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.
19-Apr-1968
Finnish (3rd, LK201-NX) - Typewriter Keys
Sequences
Character
" quotations
i pound (number) sign
, apostrophe
@ commercial
capital
<0"> capital
capital
at
A with umlaut
0 with umlaut
A with ring
capital
small e
small a
small 0
small a
U with umlaut
with acute
with umlaut
with umlaut
with ring
<0">
small u with umlaut
7.
Page 6-160
space quotations
quotations space
+ +
space apostrophe
apostrophe space
a a
A A
A a
a A
quotations A A quotations
quotations 0
0 quotations
A asterisk
asterisk A
A <0"'>
<0"'> A
quotations U U quotations
apostrophe e
e apostrophe
quotations a a quotations
quotations 0
0 quotations
. a asterisk
asterisk a
<0"'> a
a <0"'>
quotations u u quotations
Austrian/German (2nd, LK201-NG) - Typewriter Keys
Character
Sequences
" quotations
space quotations
quotations space
i pound (number) sign
, apostrophe
+ +
space apostrophe
apostrophe space
s
§
capital A with umlaut
<0"> capital 0 with umlaut
capital u with umlaut
'" circumflex character
, grave accent
<0">
mDmDomD™
small a with umlaut
small 0 with umlaut
small u with umlaut
B
s I
ISS
o s
s 0
0 S
S 0
o s
s 0
0 S
S 0
os s 0 0 S S 0
quotations A A quotations
0 quotations
quotations 0
quotations U U quotations
space'" (circumflex)
'" (circumflex) space
space ' (grave accent)
, (grave accent) space
quotations a a quotations
quotations 0
0 quotations
quotations u u quotations
s s
Digital Internal Use Only
EL-00070-0-6
VSRM - Keyboard Processing
8.
19-Apr-1988
Page 6-161
Dutch (2nd, LK201-NH) - Typewriter Keys
7-bit Characters mode is not available with the Dutch
Keyboard (same as North American).
9.
Italian - Typewriter Keys
Character
Sequences
" quotations
space quotations
quotations space
- L
L - 1
- L
L - 1
space apostrophe
apostrophe space
UK pound
, apostrophe
<0"'>
§
small c with cedilla
small e with acute
'"
circumflex character
small u with grave
. small a with grave
<0'> small o with grave
small e with grave
small i with grave
mDmDomD™
! s
s!
! S
S
o s
o s
os
s 0
s 0
s 0
'" 0
0
S
S
o '"
0
1 1 -
0
0 S
S 0
0 S
S 0
space *
* space
c,
, c
apostrophe e
e apostrophe
space'" (circumflex)
'" (circumflex) space
grave-accent u
u grave-accent
grave-accent a
a grave-accent
grave-accent 0
o grave-accent
grave-accent e
e grave-accent
grave-accent i
i grave-accent
Digital Internal Use Only
EL;..00070;..06
VSRM - Keyboard Processing
10.
19-Apr-1988
Swiss (French) (LK201-AK) - Typewriter Keys
Ch,aracter
Sequences
" quotations
space quotations
quotations space
grave-accent u
u grave-accent
space apostrophe
apostrophe space
grave-accent a
a grave-accent
apostrophe e
e apostrophe
c,
, c
circumflex-accent e
e circumflex-accent
circumflex-accent i
i circumflex-accent
grave-accent e
e grave-accent
circumflex-accent 0
o circumflex-accent
umlaut-mark a
a umlaut-mark
umlaut-mark 0
o umlaut-mark
umlaut-mark u
u umlaut-mark
circumflex-accent u
u circumflex-accent
small u with grave
, apostrophe
small a with grave
small e with acute
small c with cedilla
small e with circumflex
A
small i with circumflex
small e with grave
small 0 with circumflex
small a with umlaut
<0"> small 0 with umlaut
small u with umlaut
small u with circumflex
mDmDomD™
Page 6-162
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
11.
19-Apr-1988
Swiss (German) (LK201-AL) - Typewriter Keys
Character
Sequences
" quotations
space quotations
quotations space
grave-accent u
u grave-accent
space apostrophe
apostrophe space
grave-accent a
a grave-accent
apostrophe e
e apostrophe
c,
, c
circumflex-accent e
e circumflex-accent
circumflex-accent i
i circumflex-accent
grave-accent e
e grave-accent
circumflex-accent 0
o circumflex-accent
umlaut-mark a
a umlaut-mark
umlaut-mark 0
o umlaut-mark
umlaut-mark u
u umlaut-mark
circumflex-accent u
u circumflex-accent
small u with grave
, apostrophe
small a with grave
small e with acute
small c with cedilla
small e with circumflex
small i with circumflex
small e with grave
small 0 with circumflex
small a with umlaut
<0"> small 0 with umlaut
small u with umlaut
mDmDomD™
Page 6-163
small u with circumflex
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
12.
19-Apr-1988
Swedish (2nd, LK201-NM) - Typewriter Keys
Character
Sequences
" quotations
small a with umlaut
<0"> small 0 with umlaut
small a with ring
space quotations
quotations space
+ +
space apostrophe
apostrophe space
apostrophe E
E apostrophe
quotations A A quotations
quotations 0 0 quotations
A asterisk
asterisk A
A
A
quotations U U quotations
apostrophe e
e apostrophe
quotations a a quotations
quotations 0 0 quotations
a asterisk
asterisk a
small u with umlaut
quotations u
#, pound (number) sign
apostrophe
capital E with acute
capital A with umlaut
<0"> capital 0 with umlaut
capital A with ring
capital U with umlaut
small e with acute
13.
a
a
u quotations
Norwegian - Typewriter Keys
Character
Sequences
" quotations
space quotations
quotations space
+ +
space apostrophe
apostrophe space
a a
A A
A a
A E
# pound (number) sign
, apostrophe
@ commercial at
capital 1£
<0/> capital 0 with slash
capital A with ring
circumflex
A
o /
small a!
<0/> small 0 with slash
small a with ring
- tilde
/
a A
0
A asterisk
asterisk A
space
space
space' (grave accent)
, (grave accent) space
a e
o /
/ 0
a asterisk
asterisk a
space - (tilde)
- (tilde) space
A
, grave accent
mDmDomD™
Page 6-164
Digital Internal Use Only
EL-00070-06
V5RM - Keyboard processing
14.
19-Apr-1988
page 6-165
French (Belgium) (LK201-AP) - Typewriter Keys
Character
5equences
" quotations
space quotations
quotations space
UK pound
-
, apostrophe
small a with grave
L
, grave accent
small e with acute
small u with grave
small e with grave
A
~DmDDmDTM
circumflex
-
1
1 1 -
- L
L - 1
space apostrophe
apostrophe space
, (grave accent) a
a ' (grave accent)
o
0
space degree
degree space
space *
* $pace
c,
, c
! s
s 1
5
5
o s
s 0
0 5
5 0
o s
s 0
0 5
5 0
os s 0 0 S 5 0
space ' (grave accent)
, (grave accent) space
apostrophe e
e apostrophe
, (grave accent) u
u ' (grave accent)
, (grave accent) e
e ' (grave accent)
space
space
A
small c with cedilla
<50> §
L -
Digital Internal Use Only
A
EL-00070-06
VSRM - Keyboard Processing
15.
19-Apr-1988
Page
6~166
Spanish (LK201-AS) - Typewriter Keys
Character
Sequences
---------
---------
"
space quotations
quotations space
L
L
- I
L
L
I
space apostrophe
apostrophe space
1 s
s 1
1 S
0 s
s 0
0 S
0 s
0 S
s 0
0 s
0 S
s 0
quotations
UK pound
,
apostrophe
§
<11> inverted!
capital N with tilde
?> inverted ?
circumflex character
A
-
-
-
I
I
- -
-
-
S
S 0
S 0
S 0
- (tilde) N
N - (tilde)
?
?
space
(circumflex)
(circumflex) space
space ' (grave accent)
, (grave accent) space
A
A
, grave accent
o
0
small n with tilde
small c with cedilla
- tilde
16.
A
0
space *
- (tilde) n
n - (tilde)
c,
,c
space - (tilde)
- (tilde) space
*
space
Portuguese (LK201-AV) - Typewriter Keys
Character
"
quotations
apostrophe
commercial at
capital A with tilde
capital C with cedilla
capital 0 with tilde
circumflex character
Sequences
space quotations
quotations space
space apostrophe
apostrophe space
a a
A A
A a
a A
A - (tilde) - (tilde) A
C ,
grave accent
small a with tilde
small c with cedilla
small 0 with tilde
tilde character
, C
o - (tilde) - (tilde) 0
space
(circumflex)
(circumflex) space
space' (grave accent)
, (grave accent) space
a - (tilde) - (tilde) a
c ,
, c
o - (tilde) - (tilde) 0
space - (tilde)
- (tilde) space
A
A
mDmDomD™
A
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.15.11.2
19-Apr-1988
Page 6-167
Typewriter Keys Non-Spacing Diacritical Marks By
Keyboard (7-bit Characters) -
The following lists all the non-spacing diacritical marks while
the terminal is in 7-bit Characters mode, with Typewriter Keys
selected. Note: This table applies to keyboard maps as specified
in Set-up, not physical keyboards.
1.
North American (LK201-EE US/UK or LK201-AA) - not
applicable.
2.
British (LK201-EE US/UK) - none
3.
British (LK201-AE) - none
4.
Flemish (LK201-AB)
EOO Grave Accent
011 Circumflex Accent
011 Dieresis
(shifted)
5.
Canadian (French)
(LK201-AC)
C11 Grave Accent
C11 ~ircumflex Accent
(shifted)
6.
Danish (2nd, LK201-ED) - none
7.
Danish (1st, LK201-AD)
EOO Ring Mark
012 Dieresis
(shifted)
8.
Finnish (3rd, LK201-NX) - none
9.
Finnish (1st, LK201-AF) - none
10.
Austrian/German (2nd, LK201-NG) - none
11.
Austrian/German (1st, LK201-AG) - none
12.
Dutch (2nd, LK201-NH) - not applicable
mDmDomo
TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
13.
Dutch (1st, LK201-AH) - none
14.
Italian (LK201-AI)
EOO Grave Accent
E08 Circumflex Accent
15.
Swiss (French)
(LK201-AK)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
D12 Dieresis
16.
Swiss (German)
(LK201-AL)
E12 Circumflex Accent
E12 Grave Accent
(shifted)
D12 Dieresis
17.
Swedish
18.
Swedish (1st, LK201-AM) - none
19.
Norwegian
20.
Norwegian (1st, LK201-AN)
EOO Ring Mark
(shifted)
D12 Dieresis
21.
Belgian/French (LK201-AP)
EOO Grave Accent
D11 Circumflex Accent
D11 Dieresis
(shifted)
22.
Spanish (LK201-AS)
D11 Grave Accent
D11 Circumflex Accent
C11 Acute Accent
C11 Dieresis
C12 Tilde Mark
(shifted)
Portuguese (LK201-AV)
C11 Tilde Mark
C11 Circumflex Accent
D11 A~ute Accent
D11 Grave Accent
(shifted)
23.
mDmDomD™
(2nd, LK201-NM) - none
(2nd, LK201-EN) - none
(shifted)
(shifted)
(shifted)
Digital Internal Use Only
Page 6-168
EL-00070-06
VSRM - Keyboard Processing
6.15.11.3
19-Apr-1988
Page 6-169
Data Processing Keys Valid Compose Sequences -
The following compose sequences are valid when the terminal is in
7-bit Characters mode, with Data Processing keys selected,
regardless of the keyboard selected.
When in 7-bit Characters Mode, with Data Processing keys selected,
the ASCII character set is used, instead of the applicable
National Replacement Character set. Therefore, compose sequences
to generate the special characters and symbols in the several NRCS
are not available when Data Processing Keys is selected.
All Keyboards - Data Processing Keys
Character
Sequences
" quotations
space quotations
quotations space
+ +
space apostrophe
apostrophe space
a a
A A
A a
# pound (numper) sign
, apostrophe
@ commercial at
[ opening bracket
\ backslash
] closing bracket
circumflex character
A
(
/ /
)
a A
(
/ <
< /
)
space
(circumflex)
(circumflex) space
space' (grave accent)
, (grave accent) space
A
A
, grave accent
{ opening brace
I vertical bar
} closing brace
- tilde
6.15.11.4
(/
A
)
-
A
(
/
-)
space - (tilde)
- (tilde) space
Data Processing Keys, Non-Spacing Diacritical Marks -
There are no non-spacing diacritic keys in 7-bit Characters mode
when Data Processing Keys are selected, because no such key is
required to produce a character from the ASCII character set.
mDmDomD™
Digital Internal Use Only
EL-0'0070-06
VSRM - Keyboard processing
6.16
19-Apr-1966
Page 6-170
CONTROL CODES AND KEYSTROKES
The following codes will be transmitted when the control key is
depressed simultaneously with another key:
Legend
HEX Code
Transmitted
Name
Ctrl-space
00
NUL
Ctrl-2
00
NUL
Ctrl-A
01
SOH
Ctrl-B
02
STX
03
ETX
Ctrl-C
04
Ctrl-D
EOT
Ctrl-E
OS
ENQ
ACK
Ctrl-F
06
BEL
07
Ctrl-G
Ctrl-H
06
BS
Ctrl-I
09
HT
OA
Ctrl-J
LF
Ctrl-K
OB
VT
Ctrl-L
OC
FF
Ctrl-M
OD
CR
Ctrl-N
OE
SO
OF
Ctrl-O
SI
Ctrl-P
10
DLE
Ctrl-Q
11
DC1
(Only if XOFF handling is disabled)
Ctrl-R
12
DC2
Ctrl-S
13
DC3
(Only if XOFF handling is disabled)
Ctrl-T
14
DC4
15
Ctrl-U
NAK
Ctrl-V
16
SYN
17
Ctrl-W
ETB
Ctrl-X
16
CAN
Ctrl-Y
19
EM
Ctrl-Z
1A
SUB
1B
Ctrl-3
ESC
1B
Ctrl-[
ESC
1C
Ctrl-4
FS
1C
Ctrl-\
FS
Ctrl-S
1D
GS
1D
Ctrl-]
GS
Ctrl-6
1E
RS
Ctrl-1E
RS
Ctrl-7
1F
US
1F
Ctrl-?
US
Ctrl-6
7F
DEL
Ctrl-Tab
09
HT
Ctrl-Enter (same as ENTER alone)
Ctrl-Return (same as RETURN alone)
Ctrl-Delete
16
CAN
Digital Internal Use Only
EL-"";OO 07 0"-0"6
VSRM - Keyboard Processing
19-Apr-1988
page 6-171
Notes:
1.
The Shift key is ignored when pressed in combination with
Control.
2.
On the number keys (E01-E10), the control-numeral
combination takes precedence over the other legend (if
the control-numeral combination is valid) regardless of
the shift state.
3.
On the North American keyboard, the control-tilde
combination is used for the Open Quote/Tilde key (Tilde
is the shifted legend on EOO, Control Open quote is not a
valid control combination).
-
momoomD
1M
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.17
19-Apr-1988
Page 6-172
SUMMARY OF MODES
The following table summarizes the modes that affect the keyboard
and/or character transmission.
Those modes that do not have a
symbol are local Set-Up modes only and are not setable from the
host. Those modes that do not have an LED are indicated as blank.
Name of Mode
Symbol/LED
Host Port
Environment *
Keyboard Usage ***
Conformance Level
Hold Screen **
Lock Key **
Caps/Shift Lock
Compose * and **
Keyboard Action
Auto Repeat ***
Keyclick *
Cursor Key
Keypad
Reset Name
Seven Bit
Typewriter
Level 1
Hold Off
Unlocked
Caps Lock
Compose
Compose Off
KAM/Wait
Unlocked
DECARM
Repeat Off
Keyclick Off
DECCKM
CursorDECKPAM/DECKPNM Numeric
DECNKM
Numeric
New Line
LNM
New Line Off
Cl Transmission
S7CIT/S8CIT Seven Bit
Character Set Mode DECNRCM
8-bit-Char's
UPSs***
DECAUPSS
DEC-Mes
Keyboard Dialect*
Delete Key*
Delete
Compose Key*
Enable
Break Key*
Enable
DECKBUM****
DECSCL
Hold Screen
Lock
Set Name
Eight Bit
Data-processing
Level 2
Level 3
Hold On
Locked
Shift Lock
Compose On
Locked Repeat On
Keyclick On
Ck Application
Kp-Application
Kp-Application
New Line On
Eight Bit
7-bit-Characters
ISO Latin-l
Backspace
Disable
Disable
Notes:
* - Set-Up mode only (no coded representation)
** - Activated by terminal user by typing keys (no coded
representation)
*** - Terminal user convenience feature - not to be issued by
software except in response to the wishes of the terminal user
**** - Extension to Level 2, required in Level 3
mDmDomD™
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.18
19-Apr-1988
Page 6-173
CHANGE HISTORY
6.18.1
Revision 0.0 To 0.1
All sections:
1.
Renumbered sections so as to put related information
together. Organized material according to physical areas
of the keyboard.
2.
Added change bars to any change that could effect
conformance or interpretation of the document or should
be brought to the attention of terminal implementors or
software engineers.
Section 3 - Terminology:
3.
Added terminology section.
Section 4 - Physical Keyboard Description:
4.
Clarified that Lock key is not effected by typing Shift
key.
5.
Clarified that Compose indicator also comes on for
implied compose.
6.
Clatified that XON and XOFF do NOT set Hold Screen
Indicator, only Hold Screen Key does.
Section 5 - Conformance Requirements:
7.
Made conformance requirement specific, including keys,
control functions related to the keyboard and local
Set-up features.
8.
Indicated that Caps lock Operation is the factory default
mode (not Shift Lock Operation) in order to be compatible
with the VT100.
9.
Indicated that disabling the error bell is a Level 2
extension.
10.
Require GR Transmission Mode for Level 2.
Section 7 - Functions and State for all keyboard areas:
11.
Changed so that all keys that send codes also
auto-repeat.
12.
Indicated that keys in an implied or explicit compose
sequence do not auto-repeat.
mDmDomD
TM
Digital Internal Use Only
EL-00070-06.
VSRM - Keyboard Processing
19-Apr-1988
Page 6-174
13.
Indicated that all keys, including Compose and Lock keys,
keyclick, except shift and Control keys.
14.
Indicated that keys that are inoperative when GR
Transmission Mode is NO_GR, do not keyclick.
15.
Corrected the coding for KAM parameter value.
16.
Indicated that KAM disabled keyclick too.
17.
SELECT CONFORMANCE LEVEL (DECSCL) unlocks the keyboard.
Section 8 - Cursor Keys:
18.
Corrected coding for DECCKM.
19.
Clarified that Cursor Keys depend only on Cursor Key Mode
and are independent of Keypad Application/Numeric Mode.
Section 9 - Keypad:
20.
Enter key always auto-repeats, independent of keypad
mode.
Section 11 - Application Function Key Row:
21.
Added internal documentation about Bill Hefner allocating
application function keys between operating system and
application programs to prevent conflict and increase
compatibility.
22.
Set-up mode restores terminal modes and screen when
exited.
23.
Hold Screen does not update the screen (not just prevents
scrolling) .
Section 13 - Main Key Array:
24.
Caps lock operation transmits upper case of lower case
alphabetic even when it is on the same key with another
symbol.
25.
Indicated that Non-Spacing Diacritical keys behave the
same after implied and explicit compose sequences have
started.
26.
Switched [ with] on Canadian (French), German/Austrian,
and Spanish data processing keyboards so that they are
like all other keyboards that have them on the same key
([ is in shifted position).
mDmDomD
TM
Digital Internal Use Only
EL:-00070-0-6
VSRM - Keyboard processing
19-Apr-1988
Page 6-175
27.
Removed Ctrl-[ from Canadian (French) Data processing
keyboard to generate ESC. Now like all other non-US
keyboards that only use numbers with ctrl to get NUL,
ESC, FS, GS, RS, US, and DEL.
28.
Clarified that Compose indicator goes on when Non-Spacing
Diacritical key pressed too.
29.
Removed implementor option to transmit compose key
strokes for invalid compose sequences.
30.
When GR Transmission Mode is NO GR, 7-bit explicit
compose sequences are still required, but Non-Spacing
Diacritical keys are immediately inoperative.
31.
Indicated that a distinguishable bell sound on compose
errors is an extension to Levels 1 and 2.
32.
Indicated that the error bell can be separately disabled
by the terminal user as an extension to Levels 1 and 2.
33.
Clarified that error bell is echoed if a compose is ended
by a function key, even though the function key is
transmitted (and key clicked).
34.
Compose key does keyclick.
don't key click.
35.
Compose error doesn't keyclick on last key stroke.
36.
Non-Spacing Diacritical keys keyclick, but do not
auto-repeat.
mDmDomD
TM
Lock, Shift, and Control
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
6.1S.2
19-Apr-1988
Page 6-176
Revision 0.1 To 0.2
All sections:
1.
Removed Rev 0.1 change bars. Added change bars to any
change that could effect conformance or interpretation of
the document or should be brought to the attention of
terminal implementors or software engineers.
2.
In the coded format sections, removed most of the 7-bit
notation since the only difference is CSI (9/11) in
8-bits versus ESC [ (1/11 5/11) in 7-bits. This is not a
specification change, only a presentation change.
3.
In the coded format sections, added the S-bit column/row
decimal notation used in ANSI and ISO standards
immediately below the graphic character notation, e.g.,
immediately below CSI 2 h is 9/11 3/2 6/S.
Section 3 - Terminology:
4.
Added concept of "permanent label strip" and "removable
label strip" of which the latter can be "system label
strip" or an "application label strip".
5.
Changed all references of "foreign keyboards" to "non-US
keyboards".
Section 4 - Physical Keyboard Description:
6.
Added concept of "product class" of keyboards for
LK201-Ax (standard keyboard), LK201-Bx (DECmate II),
LK201-Cx (VAXworkstation), LK201-Dx (Generic Video),
LK201-Ex (Generic Hardcopy). The DEC Standard keyboard
is intended to be used on most video terminals sold with
DEC systems, except DECmate II and VAX Workstations.
Generic is intended to be used on non-DEC systems or by
OEMs that have their own software.
7.
VAXworkstation has "Symbol" instead of "Compose" an
implements it as a shift key, rather than a modal prefix
key.
8.
Added DECmate II and EDT keypad legends.
9.
DECmate II Delete key has Word and Char instead so can
delete previous character and previous word (holding
Control Key down).
10.
Added the Permanent Label Strips for each of the five
above product classes and changed the Function row to
always be blank (to agree with what we are shipping).
11.
Added the Professional System Label Strip and RAINBOW 100
System Label Strip.
mDmDDmD
1M
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-177
12.
changed the names of keyboard versions to be country with
language in parentheses (only when needed). Removed all
alternate country names. Art Len and Martin- Hall agreed
with this simplification.
13.
Introduced the concept of "usage mode" to distinguish
typewriter layout from data processing layout, rather
than calling them different versions, since both modes
are labeled on the same version of the keyboard.
14.
Described keys not present on most non-U.S.
typewriter
modes (11 characters) and data processing modes (5).
15.
Removed GR Transmission Mode (setable from host) and
replaced it with the Host Port Environment Mode (which is
only a Set-Up feature and which is required for Level 2
conformance but is optional for Levell conformance).
Section 5 - Conformance
16.
Removed Requirement to implement Keyclick Mode as a
Set-Up feature.
It is an implementor option. Section 11
- Application Function Key row:
17.
Corrected Levell coding for F12 and F13 keys (from 1/8
and 1/10 to 0/8 and 0/10) to agree with ASCII for BS and
LF.
Section 13 - Main Key Array:
18.
Put versions in increasing alphabetical order by version
number.
19.
When in Shift Lock Operation (as opposed to Caps Lock
Operation), the Shift key rather than the Lock key is
pressed again to leave the locked state.
20.
Clarified that New Line Mode does not effect ctrl/M.
ctrl/M always transmits just 0/13.
21.
Corrected the coding of the Q keys (001 and COl) to agree
with ASCII (7/2 changed to 7/1 and 5/2 changed to 5/1).
22.
Corrected Denmark LK201-xD in Data processing mode key
C10 from 0 w/slash (15/8, 13/8) to ~ (14/6, 12/6).
~DmDDmD
TM
Digital Internal Use Only
BL-00070-06
VSRM'- Keyboard Processing
19-Apr-1988
Page 6-178
23.
Corrected Italy LK201-xI (both modes) to show that B08
circumflex is a Non-Spacing Diacritical key that starts
an implied compose sequence.
24.
Spain LK201~xS (typewriter mode) changed BOO uppar from
invert question mark (11/15) to invert exclamation mark
(10/1).
25.
Clarified that keyclick indicates whether something was
transmitted to the host or not, even in compose errors.
26.
Indicated additional compose error combinations in the
table.
Section 14 - Summary of modes
27.
momDomD
1M
Added this section for easy reference.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard processing
6.18.3
19-Apr-1988
Page 6-179
Revision 0.2 To AX10
1.
Reorganized first five sections of the document.
2.
Removed all references to the Ox and Ex classes of
keybo~rd, and modified a~ legend tables to reflect this
change.
3.
Removed descriptions of Application Label strips pending
software strategy on label strip distribution control,
and added a note to the System Label Strip table
indicating that it is not required for conformance.
4.
Added Japan (Katakana) Version LK201-xJ keyboard.
5.
Corrected an error in the description of Keyboard Action
Mode which referred to the Lock LEO instead of the Wait
LEO.
6.
Added notes to the description of Auto-Repeat to soften
the conformance requirements, making it clear that
variable repeat rates are not a required function, and
that the delay in turning off auto-repeat when the DECARM
control is received is UNDEFINED.
7.
Added codes for Local Function Keys used in combination
with Shift and Control, and for Compose Key when not
implemented as a local function.
8.
Added a deviation note to the description for New Line
Mode to indicate that previous terminals caused New Line
Mode to effect the operation of Control-M.
9.
Corrected the code ~ransmitted by Control-Q in all of the
keyboard tables (it was 1/2, and should be 1/1).
10.
Corrected the tables for the Denmark Version LK201-xD
keyboard (both modes) which had errors on key ids C10 and
C11.
11.
Added a note that the Local Function Keys will terminate
a Compose Sequence.
12.
Added a note to the Compose Sequence tables to indicate
that order is significant only where specifically
indicated in the tables.
momoomD
TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-180
13.
Removed the error bell from the Compose error recovery
for keys which terminate the Compose sequence and
transmit their normal codes, such as control keys and
Function keys.
14.
Removed the error bell from the definition of inoperative
keys.
15.
Removed the restriction on the use of Non-Spacing
Diacritical Keys in Level 1 operation to allow valid
7-bit Compose sequences to be introduced by Non-Spacing
Diacritical Keys.
16.
Removed Hold Screen interactions with communications
functions, particularly XON/XOFF, and added references to
. the section "Code Extension Layer".
17.
Added a note that some control characters may be used as
Local Function Keys when required by the communications
protocol.
18.
Changed the implementation of Caps Lock.
Only keys with
upper case characters on tbe legends will be effected by
Caps Lock.
Keys with one or more lower case diacritical
characters will not be effected. All keyboard code
tables were changed to reflect this.
19.
Added a note that for Compose sequences consisting of two
alphabetic characters, it is required to implement the
sequences with both characters upper case and both lower
case.
It is optional to also implement the sequences
with one character upper case and the other lower case.
20.
Removed Local Function Key codes to the appendix
"Documented Exceptions".
21.
Changed the description of Lock Key to indicate that it
works the same in both Shift Lock and Caps Lock Mode.
22.
Added notes the Cursor Key Mode and Keypad Mode to
indicate that any inter-dependencies are UNDEFINED in
Level 1 operation, but they must be independent in Level
2 operation.
Digital Internal Use Only
EL-00070 .... 06
VSRM - Keyboard Processing
6.18.4
19-Apr-1988
Page 6-181
Revision AX10 To Ax11
All sections:
1.
Removed all revision Ax10 change bars. Added change bars
to any change that could effect conformance or
interpretation of the document or should be brought to
the attention of terminal implementors or software
engineers.
2.
Removed all references to echoing the error bell as part
of the error recovery for dead keys.
section 5 - Physical Keyboard Description
3.
Removed note on VAXstation Keyboard Lock Indicator.
Section 6 - Control Functions And State
4.
Added, ESC to the list of keys which do not auto repeat.
5.
Clarified rules defining which keys click. All keys
which transmit codes, or cause the terminal to take some
immediate action click.
Section 9 - Editing Keypad Keys
6.
Removed statement that the codes transmitted by the
Editing keypad keys are not effected by Control, Shift,
or Lock. Added statement that these keys are inoperative
when pressed in combination with Shift or Control.
Section 10 - Application Function Keys
7.
Removed statement that the codes transmitted by the
Application Function Keys are not effected by Control.
Added statement that these keys are inoperative when
pressed in combination with Control.
Section 12 - Main Key Array
8.
Removed reference to keyclick behavior in section on
special keys and functions.
9.
Removed statement that the codes transmitted by Space Bar
and Delete are independent of Control, Shift, and or Lock
keys.
Fixed table to show Control Delete sends 1/8.
10.
Changed section on Control key operation to indicate that
alternate forms for keying CO controls are available on
non-US keyboards whenever the keys involved in these
combinations are present.
11.
Added paragraph documenting behavior of auto repeat when
Control is pressed.
~DmDDmD TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-182
12.
Add'ed statement that pressing Shi ft does not turn off
lock in section on Lock Key Operation.
13.
Added. statement that delete key clicks when used to
cancel a compose sequence.
14.
Added paragraph documenting how British £ is handled in
7-bit mode on the British keyboard.
15.
Corrected description of compose sequence error
conditions and recovery.
Dead keys are ignored while in
a compose sequence.
Illegal compose characters cancel
the compose sequence but do not sound the error bell.
Pressing Compose within a compose sequence clicks if
keyclick is enabled.
16.
Added new compose sequences for back slash, §, and
mDmDomD
TM
Digital Internal Use Only
0
EL-00070-06
VSRM - Keyboard Processing
6.18.5
19-Apr-1988
Page 6-183
Revision Ax11 To AX12
All sections:
1.
Removed all revision Ax11 change bars. Added change bars
to any change that could effect conformance or
interpretation of the document or should be brought to
the attention of terminal implementors or software
engineers.
2.
Removed all references to LK201-Cx
3.
Replaced the term Dead Diacritical Mark with Non-Spacing
Diacritical Mark to reflect current usage.
4.
Re-organized keyboard features into categories by whether
they affect coding or user interaction to group
functionally related features together.
5.
updated entire standard to reflect latest country
keyboards, 8-bit Architecture (ISO Latin-1), and NRCS
support.
Section - 1 Introduction
6.
Added subsection on keyboard product classes to explain
model designations (LK201-xx).
7.
Added explanation of Keyboard Versions and Dialects to
show which keyboards are described in this chapter, and
which are the most recent (recommended) and superseded
keyboards for each country market (Keyboard Dialect).
Section - 2 Conformance Requirements
8.
Added Level 3 conformance requirements.
9.
Added description of Level 3 operation.
10.
Expanded Keyboard Character Encoding section to cover
"8-bit Architecture" and "NRCS Extension".
Section - 3 Referenced Standards and Related Publications
11.
updated referenced standards to include document order
number and full name of standard.
12.
Added reference to A&LK201 Functional Specification,&.
13.
Added information on how to order cited documents.
Section - 4 Terminology
14.
~DmDDmD
TM
Added definitions for "Keyboard Usage Mode" and "Keyboard
Dialect".
Digital Internal Use Only
EL-00070:"'06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-184
Section - 5 Physical Keyboard Description
15.
Documented front legends for Editing and Numeric Keypads
for LK201- {NA, PAl (VT330/VT340 Local Edit Mode
legends) .
16.
Described system legend strip variations for G99 as "Hold
Session", GOO as "Local Print", and G02 as "Switch
Session" for multiple session terminals.
17.
Described system legend strip variations for G02 as "F4"
or "Data/Talk".
Section - 6 Keyboard Operation and State that Affects
User Interaction
18.
Clarified section on Keyboard Output Silo. Added
guideline "The VT320 provides a 25 keystroke silo".
19.
Extended list of conditions that can reset Keyboard
Action Mode to include Entering Set-Up in Levell, Clear
Comm, and Terminal Reset.
20.
Added sentence that control and shift keys do not cause a
new delay before auto-repeating new code (if any).
21.
Broke out information on keys not effected by auto repeat
mode·, created a new section. Added additional keys that
were not part of the original list.
22.
Created section on auto repeat guidelines to show timing
considerations for actual terminals.
23.
Defined an upper limit on the time between when a DECARM
control is received and the time a key which was already
auto-repeating stops repeating when terminal is
processing host output (to allow testing for
conformance).
24.
Clarified section on Visual Indicators.
25.
Expanded section on Audible Indicators to include Warning
Bell and Margin Bell. Added paragraph describing
interaction of keyclick and bells.
Section - 7 Keyboard State and Operating Modes that
Affect Keyboard Encoding
26.
Added summary of modes that affect keyboard encoding at
beginning of section. Added new modes:
BackArrow Key
mode, Disable Compose mode. Added new Set-up options:
Remap shifted ,.
to <>, Remap <> to '-, Remap ,- to ESC,
Remap KP, to SPACE.
27.
Documented Terminal Emulation mode not previously covered
(VT52 and VT100, VT200 and VT300).
mDmDomD
TM
Digital Internal Use Only
EL-00070 .... 06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-185
28.
Added description of "Character Set Mode" to cover NRCS
Extension. Made NRCS support more intuitive by
organizing as 7-bit/8-bit Charact~rs instead of
National/Multinational. Added algorithm for
setting/resetting character set mode.
29.
Greatly expanded explanation of Keyboard Usage Mode.
Added summary of Data Processing characters for each
keyboard dialect. Added description of new DECKBUM
control function.
30.
Greatly expanded explanation of Keyboard Dialect
(selection of country keyboards) to cover NRCS Extension
and latest country keyboard layouts. Added list showing
NRC set to be used for each keyboard dialect.
31.
Added detailed explanation of how Combined US/UK keyboard
works with North American and British keyboard dialects.
32.
Added description of User Preference Supplemental Set
(UPSS) to cover 8-bit Architecture Extension.
Section - 9 Numeric Keypad Keys
33.
Added description of DECNKM control function.
Section - 12 Local Function Keys
34.
Expanded explanation of Hold Screen function to include
"Hold Session" on multi-session terminals. Referenced
new Terminal Synchronization chapter for explanation of
Hold Screen interaction with flow control.
35.
Included section on Local Function key F4 as used with
the VT330/340 (Switch ~Session), and VT220 (Data/Talk).
36.
Expanded explanation of Break Key operation to include
Disable Break option.
Section - 13 Main Key Array - Special Keys and Functions
37.
Clarified example of the ctrl-number construct.
38.
Referenced new section on Control Codes and Keystrokes.
39.
Added notes on control key operation with keys from the
editing keypad and function keys.
40.
Expanded explanation of Lock Key operation.
41.
Added description of DEL/BS option for Backarrow key on
vT300 series terminals.
42.
Added description of "Hold Session" for multiple session
terminals (VT330/VT340).
mDmDomo
TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
Page 6-186
43.
Expanded description of "Data/Talk" key as used for VT220
integral modem.
44.
Noted F4 is dead if not used for a local function.
45.
Added explanation of Disable Compose option.
Section - 14 Main Key Array - Graphic Character Keys
46.
Clarified keyboard character set encoding.
47.
Explained precedence rules for unshifted, caps-lock,
shift-lock, shift, and control.
48.
Removed most coding (where obvious) from tables and
referenced DEC STD 169 on character sets.
49.
Updated graphic character tables to include latest
keyboards, and support for NRCS Extension.
50.
Re-organized subsection to provide tables for 8-bit
typewriter and Data Processing keys, as well as 7-bit
typewriter and Data Processing keys for each Keyboard
Dialect and country keyboard in one place.
51.
Listed complete table only once per keyboard dialect,
then listed differences to simplify understanding the
affe~t of each keyboard mode.
52.
Each table fits on one page and is clearly identified
(Keyboard Dialect, 8-bit/7-bit Characters,
Typewriter/Data Processing, layout version within
dialect, which physical keyboards table is intended for).
53.
Added table for main key array for the LK201- {PA, NA} in
the DECMatejWPS section.
Section - 15 Compose Operation
54.
Expanded section on Compose Operation.
55.
Provided tables for valid compose sequences in 8-bit and
7-bit Characters Mode (NRCS Extension) with and without
non-spacing diacriticals.
56.
Added compose sequences for 8-bit Architecture Extension
(ISO Latin-I) as implemented in VT300 family.
57.
Added section on choice of supplemental sets and compose
operation.
momDomD
TM
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
19-Apr-1988
page 6-187
58.
Eliminated the one compose sequence that produces a
different character in ISO Latin-1 versus DEC
Supplemental. COMPOSE should produce
'double quote' in both DEC Supplemental and ISO Latin-1
for backward compatibility and consistency with acute
accent. Noted VT320, VT330, and VT340 as deviations.
59.
Simplified table of compose sequences for 8-bit
characters without non-spacing diacriticals by listing
each sequence in only one order. Added note that order
can be reversed unless table entry explicitly says "in
order". Added phrase "in order" to every order sensitive
entry.
60.
Added VT330/VT340 numeric keypad (hexidecimal) compose
feature.
61.
Added "Switch Session" key to list of keys which abort
compose immediately.
62.
Added table summarizing non-spacing diacriticals for each
keyboard dialect.
Section - 16 Control Codes and Keystrokes
63.
Put control codes into one table in new section.
Section - 17 Summary of Modes
64.
mDmDnmD
TM
Updated summary of modes.
Digital Internal Use Only
EL-00070-06
VSRM - Keyboard Processing
mDmDomD™
19-Apr-1988
Digital Internal Use Only
Page 6-188
EL-00070-06
- Keyboard Processing
19-Apr-1988
Page Index-l
VSR~
section
Application Function Key, 6-32,
6-70
Application Function Key Row
within compose sequence, 6-141
Application Function Keys, 6-15,
6-28, 6-30
Application Label Strip
definition, 6-25
Application Process, 6-12, 6-14
definition, 6-25
Auto Print Mode, 6-73
Auto Repeat
within compose sequence, 6-134
Auto Repeat Mode, 6-16, 6-40,
6-172
8-bit Architecture Extension,
6-21
Break Key, 6-74
Byte
definition, 6-25
Cl Transmission Mode, 6-61, 6-64,
6-66, 6-69, 6-70, 6-172
Caps Lock, 6-16, 6-17, 6-77, 6-78,
6-82, 6-172
Caps/Shift Lock Mode, 6-16, 6-17,
6-77, 6-78, 6-82, 6-172
Character
definition, 6-25
Character Set Mode, 6-22, 6-172
Coded Character
definition, 6-25
Coding Interface, 6-12, 6-14
definition, 6-25
Compose, 6-12, 6-44
Compose Key, 6-12, 6-44
Co~pose LED, 6-30, 6-44, 6~141
Compose Mode, 6-172
Compose Sequence, 6-12, 6-19,
6-20, 6-44, 6-81
algorithm, 6-145
auto repeat, 6-134
buffering, 6-37
cancelling, 6-138
case within, 6-140
momDomD™
Index
definition, 6-25
errors, 6-141
explicit, 6-20, 6-26, 6-42,
6-79, 6-80, 6-134, 6-140,
6-145
implied, 6-26, 6-42, 6-79,
6-134, 6-140, 6-145
order within, 6-140
restarting, 6-138
syntax, 6-143
Compose sequence
implied, 6-80
Compose Sequences, 6-54
Conformance
keyboard, 6-15
Conformance Level, 6-17, 6-38,
6-70, 6-172
Control Character
definition, 6-25
Control Function
definition, 6-25
Control Key, 6-61, 6-63, 6-69,
6-70, 6-75
auto repeat, 6-42
with new line mode, 6-79
with shift key, 6-77
within compose sequence, 6-141
Cursor Key, 6-28, 6-60, 6-61,
6-62
within compose sequence, 6-141
Cursor Key Mode, 6-16, 6-60,
6-172
Cursor Keypad, 6-33
Dead Key .
within compose sequence, 6-141
DEC STD 070-12, 6-23
DEC STD 070-3, 6-23
DEC STD 070-4, 6-23
DEC STD 070-7, 6-23
DEC STD 107, 6-12, 6-13, 6-15,
6-23, 6-26, 6-30, 6-75
DEC STD 169, 6-15, 6-23
DECARM, 6-41
'.
DECCKM, 6-62
DECKBUM, 6-57
Digital Internal Use Only
EL-00070--06
VSRM - Keyboard Processing
19-Apr-1988
DECKPAM, 6-66
DECKPNM, 6-67
DECmate/WPS
Main Key Array, 6-130
DECNKM, 6-68
DECNRCM, 6-52
Delete Key, 6-80
with shift key, 6-77
Diacritical Mark
definition, 6-25
Editing Keypad Front Legends,
6-32
Editing Keypad Key, 6-15, 6-19,
6-28, 6-32, 6-69, 6-70
within compose sequence, 6-141
Environment
definition, 6-25
Escape Key
auto repeat, 6-42
Explicit Compose Sequence, 6-20,
6-42, 6-79, 6-80, 6-134,
6-140
algorithm, 6-145
definition, 6-26
External Interface, 6-14
Graphic Character
definition, 6-26
Hold Screen Key, 6-44, 6-72
Hold Screen LED, 6-30, 6-44, 6-72
Hold Screen Mode, 6-44, 6-172
Host Port
definition, 6-26
Host Port Environment Mode, 6-15,
6-16, 6-19, 6-20, 6-22, 6-47,
6-172
Human Interface, 6-12
Implied Compose Sequence, 6-42,
6-79, 6-80, 6-134, 6-140
algorithm, 6-145
definition, 6-26
Inoperative
definition, 6-26
Input Processing, 6-13
Internal Interface, 6-14
ISO 8859-1, 6-24
mDmDomD™
Page Index-2
KAM, 6-39
Key
definition, 6-26
Key Legend
definition, 6-26
Key Position 10, 6-28
definition, 6-26
Keyboard, 6-15
Keyboard Action Mode, 6-16, 6-38,
6-172
Keyboard Areas, 6-28
Keyboard Dialect
definition, 6-26
Keyboard Dialects, 6-9
table, 6-10
Keyboard Layouts, 6-9
Keyboard Lock, 6-44
Keyboard Map
logical, 6-30
physical, 6-28
Keyboard Usage Mode
data processing, 6-54
definition, 6-26
typewriter, 6-54
Keyboard Usage Modes, 6-82
data processing, 6-15, 6-28,
6-30, 6-172
typewriter, 6-28, 6-30, 6-172
Keyboard Versions, 6-9, 6-15,
6-28, 6-30, 6-54, 6-82
Keyclick, 6-19, 6-39, 6-46, 6-69,
6-70
with control key, 6-75, 6-76
within compose sequence, 6-141
Keyclick Mode, 6-46, 6-172
Keypad Mode, 6-16, 6-63, 6-65,
6-66, 6-67, 6-68, 6-172
Label Strip
application, 6-25
permanent, 6-26, 6-30, 6-35,
6-70
removable, 6-27, 6-70
system, 6-27
LEOs
compose, 6-30, 6-44, 6-141
hold screen, 6-30, 6-44, 6-72
legends, 6-30, 6-35
lock, 6-30, 6-44
wait, 6-30, 6-38, 6-44
Digital Internal Use Only
EL-00070-06·· •.
VSRM - Keyboard Processing
19-Apr-1988
Page Index-3
Legend
definition, 6-26
Level 1
keyboard, 6-15
Level 2
keyboard, 6-15
LK201, 6-7, 6-8, 6-9, 6-15, 6-23
Local Function Key
within compose sequence, 6-141
Local Function Keys, 6-28, 6-30,
6-44, 6-70, 6-72, 6-77
auto repeat, 6-42
Lock Key, 6-44, 6-61, 6-63, 6-69,
6-70, 6-75, 6-77, 6-82
with control key, 6-75
Lock Key Mode, 6-44, 6-172
Lock LED, 6-30, 6-44
Logical Keyboard Map, 6-30
National Keyboards, 6-12
New Line Mode, 6-16, 6-65, 6-75,
6-79, 6-172
with control key, 6-79
Non-Spacing Diacritical Key, 6-12,
6-26, 6-42, 6-44, 6-80, 6-134,
6-140, 6-145
definition, 6-25
NRCS Extension, 6-21, 6-22, 6-81
Numeric Keypad, 6-33
Numeric Keypad Front Legends,
6-34
Numeric Keypad Key, 6-28, 6-62,
6-63, 6-65, 6-66, 6-67, 6-68
codes generated, 6-64
within compose sequence, 6-141
Numeric Keypad Mode, 6-172
control function, 6-68
Main Key Array, 6-9, 6-28
Modes
auto print, 6-73
auto repeat, 6-16, 6-40, 6-41,
6-172
C1 transmission, 6-172
caps/shift lock, 6-16, 6-17,
6-77, 6-78, 6-82, 6-172
character set mode, 6-22, 6-52,
6-172
compose, 6-172
conformance level, 6-172
cursor key, 6-16, 6-60, 6-62,
6-172
hold screen, 6-44, 6-172
host port environment, 6-15,
6-16, 6-19, 6-20, 6-22,
6-47, 6-172
keyboard action, 6-16, 6-38,
6-39, 6-172
keyboard usage, 6-57
keyclick, 6-46, 6-172
keypad, 6-16, 6-63, 6-65, 6-66,
6-67, 6-68, 6-172
lock key, 6-44, 6-172
national replacement character
set mode, 6-52
new line, 6-16, 6-65, 6-75,
6-79, 6-172
numeric keypad mode, 6-172
printer port environment, 6-172
Permanent Label Strip, 6-30, 6-35,
6-70
definition, 6-26
Physical Keyboard Map, 6-28
Print Screen Key, 6-73
Printer Port
definition, 6-26
Printer Port Environment Mode,
6-172
Product Class
DEC Standard, 6-35
DECmate/WPS, 6-35
mDmDomD™
Receive
definition, 6-27
Reference Standards, 6-23
Removable Label Strip, 6-70
definition, 6-27
Return Key, 6-75, 6-79
auto repeat, 6-42
with shift key, 6-77
within compose sequence, 6-141
Select Conformance Level, 6-17,
6-38, 6-70
Set Keypad Application Mode
control function, 6-66
Set Keypad Numeric Mode
control function, 6-67
Set-up
definition, 6-27
Digital Internal Use Only
EL-00070-06·~ -.
VSRM - Keyboard processing
19-Apr-1988
set-up Key, 6-73
Set/Reset Auto Repeat Mode
control function, 6-41
Set/Reset Character set Mode
control function, 6-52
Set/Reset Cursor Key Mode, 6-62
Set/Reset Keyboard Action Mode
control function, 6-39
Set/Reset Keyboard Usage Mode
control function, 6-57
Set/Reset National Replacement
Character Set Mode, 6-52
Shift Key, 6-61, 6-63, 6-69, 6-75,
6-78, 6-82
auto repeat, 6-42
with control key, 6-75, 6-77
with delete key, 6-77
with function key, 6-70
with return key, 6-77
with space bar, 6-77
with tab key, 6-77
Shift Lock, 6-16, 6-17, 6-77,
6-78, 6-82, 6-172
Software Conformance
auto repeat mode, 6-41
Page Index-4
keyboard Usage Mode, 6-57
SPACE
definition, 6-27
Space Bar, 6-75, 6-79, 6-81
with shift key, 6-77
System Label Strip
definition, 6-27
Tab Key, 6-75, 6-80
with shift key, 6-77
within compose sequence, 6-141
Terminal Synchronization, 6-72
Terminal User
definition, 6-27
Transmit
definition, 6-27
User Convenience Function
auto repeat, 6-41
Keyboard Usage Mode, 6-57
User Preference Supplemental Set,
6-172
Visual Indicators, 6-44
Wait LED, 6-30, 6-38, 6-44
Digital Internal Use Only
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Page 7-1
VIDEO SYSTEMS REFERENCE MANUAL
Printer Port Extension
Document Identifier: A-DS-EL00070-07-0 Rev AX12, 28-Apr-1987
ABSTRACT: This section describes the characteristics of the
Printer Port extension to the Level 2 and Level 3 Character Cell
Display service class.
It includes both the control functions
required to cause transmission from the terminal to the printer,
and the syntax of the coded interchange at the printer port.
Note: The Level 1 Printer Port Extension consists of a sub-set of
the functions described in this standard.
At the present time
there is no separate specification of the Leve.l 1 required
functions.
APPLICABILITY: Mandatory for Engineers designing hardware for
terminal products and Software Engineers designing programs using
terminal interfaces. Additional requirements are defined in the
section on "Concepts and Conformance Criteria" (EL00070-01).
STATUS:
FOR REVIEW ONLY
+----------------------------------------------------------------+
I The material contained within this document is assumed to
I
I
I
I
I
I
I
I
define mandatory standards unless it is clearly marked as:
(a) not mandatory; or (b) guidelines. Material which is
marked as "not mandatory" is considered to be of potential
benefit to the corporation and should be followed unless there
are good reasons for non-compliance. "Guidelines" define
approaches and techniques which are considered to be good
practice, but should not be considered as requirements.
I
I
I
I
I
I
I
+-----------------------------------~----------------------------+
+----------------------------------------+
I The information in this' publication is I
I for INTERNAL DIGITAL USE ONLY; do not I
I distribute this information to anyone I
I who is not an employee of Digital.
I
+
--------------------------------------------+
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF -DEC Internal Use Only 28-Apr-1987
page 7-2
TITLE: VIDEO SYSTEMS - Printer Port Extension
DOCUMENT
~PENTIFIER:
A-DS-EL00070-07-0 Rev. AXI2, 28-Apr-1987
REVISION HISTORY: Revision AXIl
Revision AxI2
18-Mar-1985
28-Apr-1987
EL070S7.mem
FILES: User Documentation
Internal Documentation EL070S7.rno
EL070S7.rnt
EL070S7.rnx
ZZFALLBACK DEC CRM.rno
ZZFALLBACK-DEC-SPECIAL.rno
ZZFALLBACK-DEC-SUPPLEMENTAL.rno
ZZFALLBACK-DEC-TECHNICAL.rno
ZZFALLBACK-ISO-SUPPLEMENTAL.rno
Document Management Group: Terminal Interface Architecture
Responsible Department: Video Architecture Group
Responsible Individual: Peter Sichel
Authors:
PAS
APPROVAL: This document prepared by the TBU Architecture
Group has been reviewed and approved by the TIA
Review Board for use throughout Digital.
******* STATUS: For Review Only ********
Peter Conklin, Technical Director,
Terminals Business Unit
******* STATUS: For Review Only ********
Eric Williams, Standards Process Manager
Direct requests for further information
PK03-1/10C, DTN 223-5162, VIDEO::TERMARCH
to
Peter
Copies of this document can be ordered from Standards and
Control, LJOI/I2, DTN 226-2484, JOKUR::SMC
Sichel,
Methods
Please provide your name, badge number, cost center, mailstop, and
ENET node.
Page 7-3
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
•
CHAPTER 7
CONTENTS
PRINTER PORT EXTENSION
7-4
INTRODUCTION
7.1
TERMINOLOGY
7-4
7.2
STATE DESCRIPTIONS .
7-5
7.3
Printer Port Flow Control
. • .
7-5
7.3.1
XON/XOFF . . .
7-5
7.3.1.1
Data Set Ready (DSR) . .
.
o.
7-6
7.3.1.2
Data Terminal Ready (DTR)
7-6
7.3.1.3
Printer Port Status
7-7
7.3.2
Printer Port Status On Virtual Terminals . . 7-S
7.3.3
Printer Port Communications Environment
. 7-S
7.3.4
Printer To Host Communications
7-8
7.3.5
Printer Controller Mode
.
o . 7-9
7.3.6
Printer Controller Mode On Virtual
7.3.6.1
Terminals (guideline)
7-10
Auto Print Mode
.
7-10
7.3.7
Auto Print Mode On Virtual Terminals
7.3.7.1
(guideline)
7-11
Print Form Feed Mode
7-11
7.3.S
Print Extent Mode
o. •
7-11
7.3.9
7-11
Local Controller Mode (not Mandatory)
7.3.10
7-12
Printer Style
7.3.11
TRANSMITTING PRINT DATA
.
7.4
7-12
Print National Only (7-bit Or 8-bit
7.4.0.1
Printer Port Environment)
o.
7-12
Print National + Line Drawing (7-bit Or
7.4.0.2
S-bit Printer Port Environment)
7-13
Print All Characters (7-bit Printer Port
7.4.0.3
Environment)
7-14
Print All Characters (S-bit Printer Port
7.4.0.4
Environment) . .
7-15
National Replacement Character Sets
7.4.1
7-17
Display Attributes
7.4.2
7-18
Trailing Spaces . . .
7.4.3
7-18
FALLBACK PRESENTATION OF GRAPHIC CHARACTERS
7.5
7-19
7.5.1
NRC Fallbacks .
7-19
7.5.2
DEC Special Graphics Fallbacks
7-19
7.5.3
DEC Supplemental Fallbacks . .
7-20
ISO Latin-1 Supplemental Fallbacks
7.5.4
7-22
7.5.5
DEC Technical Character Set Fallbacks
7-24
7.5.6
ORCS Fallbacks . .
7-27
7.S.7
User Preference Supplemental Set Fallbacks 7-27
Control Representation Mode Fallbacks (not
7.S.8
Mandatory)
7-27
7.6
PRINT OPERATIONS . . . . . . .
7-29
7.6.1
Print Page Or Scrolling Region .
7-29
7.6.2
Print Screen (not Mandatory) . .
7-29
0
0
•
•
0
•
•
•
0
0
0
•
•
•
•
0
•
0
0
0
0
• • • • • • •
•
0
•
•
0
•
•
0
0
•
0
•
•
•
0
0
0
0
•
•
0
0
0
0
•
0
0
0
0
0
•
•
0
0
0
•
0
0
0
•
0
••
•
0
0
••
••
0
•
00
•
0
•
0
•
0
•
0
• • •
0
0
•
•
0
•
0
•
•
•
•
0
•
0
0
•
•
0
•
0
0
0
0
•
0
0
0
0
0
•
0
0
0
0
0
• • •
0
0
•
0
0
• • • • •
•
•
•
0
0
0
• • • • • •
0
•
•
•
•
0
•
0
•
0,
0
0
•
•
•
0
0
•
•
0
•
•
•
•
•
•
•
0
•
0
0
•
•
•
•
•
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Page 7-4
print All pages ( guideline.)
7.6.3
7.6.4
Print Line
7.7
CONTROL FUNCTIONS
7.8
GRAPHICS PRINTING
7.8.1
Graphics Print Operations
7.8.1.1
Graphics Print Screen
7.8.1.2
Graphics Print Region
7.8.2
Sixel Printing
7.8.2.1
Color And Monochrome Sixels
7.8.2.2
Expanded Print
·
7.8.2.3
Rotated Print
7.8.2.4
Sixel Graphics Level (Guideline)
Level 1 Sixel Devices
COMPRESSED Sixel Print Option
EXPANDED Sixel Print Option
ROTATED Sixel Print Option
Level 2 Sixel Devices
COMPRESSED Sixel Print Option
EXPANDED Sixel Print Option
ROTATED Sixel Print Option
7.9
CHANGE HISTORY .
7.9.1
Revision 0.0 To AX10
7.9.2
Rev AX10 To AXIl ·
7.9.3
Rev AXIl To AX12 ·
7-29
7-30
7-31
7-57
7-57
7-57
7-57
7-57
7-58
7-58
7-58
7-59
7-59
7-59
7-60
7-60
7-61
7-62
7-62
7-63
7-64
7-64
7-64
7-64
.·· ······ ····
· · · · ·
· · · · ·
··· ·
··· ·
·····
· · · ·
· · · ·· · ·
········..
·
·
·
· · ·
· · · ·
· · · · ·
· · ·
·
· ·
·
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.1
Page 7-5
INTRODUCTION
The use of a Printer Port forms an extension to the Levell, Level
2,
and Level 3 Character Cell Display service classes.
A
conforming device may provide an auxiliary communications port
which can be used to support a printing device. A means shall be
provided to transfer data from the display to the printer port, as
well as to relay data received at the host port directly to the
printer port. The device must transfer data from the display,
including the character codes, character renditions, and character
sets,
on a per-line,
per-scrolling region,
per-screen,
and
per-page basis.
The Printer Port uses serial asynchronous communications with
independently setable communication parameters.
Level 3 requires
a fully bi-directional printer port to allow printer to host
communication in addition to local printing (not mandatory for
Levell or Level 2).
7.2
TERMINOLOGY
Auto Print Mode the contents of
port whenever the
a
result of a
autowrap.
A printer port control which, when set,
causes
the Active Line to be transmitted to the printer
Active Position is moved off the Active Line as
Line Feed, Form Feed or Vertical Tab command, or
Fallback Transmission - A substitute transmission used when a
character
cannot be transmitted in a particular mode;
for
instance, when in NATIONAL and LINE DRAWING mode and a character
from the DEC Supplemental set is encountered.
Printer Controller Mode - A printer port control that causes all
data received at the host port to be transferred directly to the
printer port without interpretation by the display terminal.
Printer To Host Mode - A printer port control that causes all data
received at the printer port (other than ~ON/XOFF flow control) to
be relayed to the host.
Print Extent Mode - A printer port control used to select the area
of the display to be transmitted to the printer port when a Print
Page operation is performed.
Print Form Feed Mode - A printer port control which, when set,
transmits a Form Feed (FF) control character to the printer at the
conclusion of each Print Page or Print Screen operation.
Printer Port - An auxiliary communication
printing device.
port
that
supports
a
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Page 7-6
Print Line - A printer ~ontrol that causes the line containing the
Active Position to be transmitted to the printer port and the
print function to be executed.
Print Page - A printer control that causes the page containing the
Active Position to be transmitted to the printer port and the
print function to be executed. The extent of the area which is to
be transmitted is determined by the setting of Print Extent Mode.
"Print page" was previously called "Print Screen" in Levelland
Level 2.
Page refers to the logical display as seen by the host,
and may be larger or smaller than the physical screen.
Print Screen - A printer control that causes the visible screen
image to be transmitted to the printer port and the print function
to be executed.
Virtual Terminal - Consists of all the context (state information)
of a real terminal but is able to share physical resources (such
as the keyboard, display, and comm lines) with other virtual
terminals. This allows a single physical device to appear as more
than one terminal to a host computer.
Session - A connection between a single
host computer.
7.3
virtual
terminal
and
a
STATE DESCRIPTIONS
7.3.1
Printer Port Flow Control
The Printer Port uses two flow control mechanisms:
1.
XON/XOFF
2.
Data Set Ready (DSR)
7.3.1.1
XON/XOFF
When XON/XOFF flow control is ~nabled, XON and
XOFF
are
interpreted as flow control characters and are not buffered in the
printer port input buffer or transmitted to the host.
The terminal recognizes XOFF (1/3) as a request from the printer
device to suspend the transmission of characters. When this
character is received by the terminal,
transmission of all
characters (other than XON or XOFF) to the printer is suspended.
When the printer port is in this state, it is said to be in the
XOFF state.
The terminal recognizes XON (1/1) as a request from the printer
device to resume the transmission of characters, if any. When
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Page 7-7
this character is received by the terminal, the XOFF state of the
printer is cleared and transmission of characters in the printer
port output buffer is resumed. If the line was not XOFF-ed,
this
character is ignored.
When Printer To Host Communication is enabled (bidirectional
printer port only), the terminal transmits an XOFF to the printer
device if a character other than XON or XOFF is received from that
device, and (1) the number of characters in the input buffer
reaches the first XOFF point for the first time since the last XON
was sent; (2) the number of characters in the input buffer reaches
the second XOFF point for the first time since the last XON was
sent; or (3) the input buffer is full.
If the input buffer is
full, the received character is discarded.
The terminal transmits an XON to the printer device when the
printer port input buffer empties to the XON point, and the last
flow control sent was XOFF.
When XON/XOFF flow control is disabled at both the printer port
and the host port, characters XON and XOFF may be sent to the
printer in Printer Controller mode, and are
buffered
and
transmitted to the host when Printer To Host communication is
enabled.
PRINTER PORT FLOW CONTROL: (XOFF, NO_XOFF)i
7.3.1.2
Data Set Ready (DSR)
The terminal polls DSR on the printer port before transmitting
each character.
If DSR is not being asserted by the printer
device, transmission of the character is suspended until DSR is
asserted by the printer device. DSR takes precedence over the
XON/XOFF state.
All print commands will be ignored unless the terminal has seen
Data Set Ready (DSR) since the last power-up, or Reset to Initial
State (RIS). If at any time the printer sets DSR low (for example
to indicate paper out), printing is suspended. When DSR is again
set high, printing can resume.
7.3.1.3
Data Terminal Ready (DTR)
If. DTR is not being used for hardware flow control,
the terminal
- asserts DTR on the printer port whenever the terminal is turned on
and not in self-test .
. Conforming Devices may support the use DTR for hardware flow
control. The following description is intended as a guideline.
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Page 7-8
When hardware flow control is selected, DTR is asserted any time
the terminal is not in self-test, and the terminal's printer port
input buffer is below the first XOFF point.
DTR is de-asserted
when the printer port input buffer is filled up to or beyond the
first XOFF point.
-If the input buffer is full,
received
characters are discarded until there is again room in the input
buffer.
When hardware flow control is used,
only a few characters of
The first XOFF
buffer space are required to prevent loss of data.
point is suggested as the flow control threshold because it is
often adjustable allowing the user to tailor the buffer size
depending the interaction requirements.
7.3.2
Printer Port status
The printer port can be in one - of three states depending on
whether the terminal believes there is a printer available, and
whether the printer is ready to accept data.
The printer port
status may be determined from the host using a Device Status
Report control sequence.
If DSR (Data Set Ready) has not been asserted on the printer- port
since the last power-up or Reset to Initial state (RIS), the
terminal assumes there is no printer. The device status report
(response from terminal to host) will indicate "Printer not
available".
In this state, all print commands which require the
printer port are ignored.
If the printer port has seen DSR since power-up,
but it is no
longer asserted on the printer port, the device status report will
indicate "Printer not ready".
In this state, print operations
shall be queued. Updates that would affect the data to be printed
are suspended until the data has been transferred to .the printer
port.
If the terminal's host port input buffer fills, XOFF will
be sent to the host (if enabled).
If the printer port sees DSR,
the device status report will
indicate "Printer ready".
In this state, print operations can
proceed immediately. Note updates that would affect the data to
be printed are still suspended until the data has been transferred
to the printer port.
The printer port may provide an output
buffer to minimize interruption of display updates.
PRINTER STATUS:
(PRINTER_READY, PRINTER_NOT_READY, PRINTER_NOT_AVAILABLE);
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.3.3
page 7-9
Printer Port Status On Virtual Terminals
When Virtual Terminals
are
supported
(Session
Management
Extension),
the terminal will report two additional printer port
states to indicate the printer port is in use by another session.
If the Data Set Ready signal at the printer port is asserted,
but
an alternate session is currently sending information to the
printer, the device status report will indicate "Printer Busy."
This is functionally equivalent to the "Printer Not Ready"
condition above.
If the printer port is explicitly assigned to another session so
that the current session may not access the printer port, the
device status report will indicate "Frinter Not Assigned." This is
functionally equivalent to the "Printer Not Available" condition
above.
7.3.4
Printer Port Communications Environment
The printer port can be set for either an a-bit or 7-bit
communications line environment independently of the Host Port.
_In the 7-bit environment, all data will be transmitted as 7-bit
characters.
In the a-bit environment,
each character will be
transmitted as an a-bit character.
If the host port is set to
a-bits and the printer port is set to 7-bits,
C1 control
characters will be converted to ESC Fe sequences at the printer
port, and GR characters will have their eight~ bit stripped.
PRINTER PORT ENVIRONMENT:
7.3.5
(EIGHT_BIT, SEVEN_BIT);
Printer To Host Communications
Printer To Host Mode relays all input from the printer port other
than XON/XOFF flow control back to the host (enabling session).
Printer To Host mode may be selected from the host using the Media
Copy (MC) control function.
Character input from the printer port is interleaved with input
from the keyboard as it is received. Arbitration between keyboard
and auxiliary device input is the
responsibility
of
the
application
program
and user.
The terminal only provides
arbitration to the keystroke,
control function,
or character
level.
Characters associated with a single keystroke, or control function
are sent as contiguous bytes. When the terminal sees an ESC, CSI,
DCS, OSC, PM, or APC character,
the escape sequence,
control
sequence,
or control string, will be buffered until a terminator
is received for the sequence, or until the input buffer is full.
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Page 7-10
Notes:
7.3.6
1.
Printer To Host Mode functions in Printer Controller Mode
as well as other print modes.
2.
When available, Printer To Host Mode works at all
operating levels (levell, level 2, and level 3). 8-bit
graphic characters may be relayed from the printer port
even when the conformance level is set to Level 1.
3.
If the host port is set to 7-bits, C1 control characters
will be converted to ESC Fe sequences at the host port
before re-transmission to the host, and GR characters
will have their eighth bit stripped.
Printer Controller Mode
When Printer Controller Mode is set, all data received at the host
port
is
transferred directly to the printer port without
interpretation by the display terminal. The only exceptions to
this rule are the communications control characters XON and XOFF
(DC1 and DC3), NUL, and the control sequences which cause the
terminal to enter and exit this mode.
XON and XOFF are used by the communications software for flow
control on the line between the terminal and the host, and
independently for flow control on the line between the terminal
and the printer.
The terminal must intercept the Media Copy
control sequences from the host which turn Printer Controller Mode
on and off, and must execute the sequence which turns Printer
Controller Mode off. These control sequences are not passed to
the printer.
Characters from the keyboard continue to be sent to the host. The
video display is not updated. When in Printer Controller Mode no
local printer functions will work. For example: Print page does
not work.
In going from an 8-bit host port to a 7-bit printer port, C1
control characters ~ill be translated to ESC Fe sequences, and GR
characters will have the eighth bit stripped (i.e., no fallback
translation will be performed for 8-bit graphic characters in
Printer Controller Mode).
Deviation Note
On VT220, VT240, and VT241, when the host port was
configured
for a 7-bit environment, and the
Page 7-11
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
printer port was configured for 8-bits,
the
terminal would translate 7-bit· C1 controls to
their 8-bit equivalents. New terminals shall NOT
perform this translation.
Printer Controller mode can be selected from the
Media Copy (MC) control function.
When Control Representation Mode
(CRM)
Controller Mode is temporarily disabled.
is
host
using
selected,
the
Printer
Upon exiting from Printer Controller mode, the state of Auto Print
mode is UNDEFINED.
That is, when Printer Controller mode is
exited, Auto Print Mode may not be in the same state it was when
Printer Controller Mode was entered.
PRINTER CONTROLLER MODE: (PRINTER CONTROLLER OFF,
PRINTER=CONTROLLER=ON);
Guideline
The VT220 sets Auto Print mode off (normal print
mode) upon exit from Printer Controller mode.
7.3.6.1
Printer Controller Mode On Virtual Terminals (guideline)
If the Printer is "assigned" to another
session
(virtual
terminal), attempts to invoke Printer Controller Mode will be
ignored. This is equivalent to the "Printer not available" state,
but the Device Status Report will indicate "printer not assigned".
When the printer assignment is "shared" and the printer is in use
by another session,
this is equivalent to the "printer busy
state". The next action which would cause data to be transferred
to the printer will cause this session to wait until the printer
is available.
If the input buffer for this session fills while
waiting,
the terminal will send XOFF (or other flow control) to
the host.
Entering Printer Controller Mode forces the printer to
appear busy to other sessions.
7.3.7
Autu Print Mode
When Auto Print Mode is set, any Line Feed (LF), Vertical Tab
(VT),
Form Feed (FF)
control, or the execution of Auto Wrap if
this mode is enabled, will cause the active line to be transferred
from the display to the printer port. The line will be terminated
by a Carriage Return (CR), followed by the same character that
initiated the print operation (LF, VT, FF, or LF 1f Auto Wrap).
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Auto Print mode can be set or
Copy (MC) control function.
7.3.7.1
clea~ed
Page 7-12
by the host using the
Media
Auto Print Mode On Virtual Terminals (guideline)
If the Printer is "assigned" to another session, attempts to set
Auto Print mode will be ignored.
If the printer assignment is
"shared", and the printer is in use by another session (busy), the
next action which would cause data to be transferred to the
printer will cause this session to wait until the printer is
available.
Entering Auto print Mode forces the printer to appear
busy to other sessions.
Although Auto Print Mode can keep the printer "busy" indefinitely,
it is not "assigned" to the session which invokes Auto Print Mode.
This is to avoid a race condition in which the host could not
predict whether a print operation will be queued or ignored.
7.3.8
Print Form Feed Mode
Print Form Feed Mode is used to determine whether a Form Feed (FF)
control character shall be transmitted to the printer at the
conclusion of each Print Page or Print Screen operation.
In the
set state (Print FF)
a Form Feed shall be sent.
In the reset
state (No_print_FF) no Form Feed is sent.
7.3.9
Print Extent Mode
Print Extent Mode is used to determine the area of the page to be
transmitted to the printer when a Print Page operation is
performed.
In the set state (Complete page) the entire contents
of
the
current page is transmitted.
In the reset state
(Scrolling Region) only the area of the page between the Top
Margin and-Bottom Margin of the scrolling region (inclusive of the
margins) is transmitted.
PRINT EXTENT MODE: (PRINT_SCROLLING_REGION,PRINT_DISPLAY);
7.3.10
Local Controller Mode (not Mandatory)
When both Local Mode and Controller Mode are selected,
the
terminal is in "Local Controller Mode:'
(Local Mode i sonly
selectable by the user under local control).
In Local Controller
Mode, 'keyboard characters are sent directly to the printer port.
VSRM - Printer Pori Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Page 7-13
Note that in regular Local mode the keyboard is aimed at the
screen, while in regular Controller mode the keyboard is aimed at
the host. When "Local controller Mode" is exited to Printer
Controller Mode,
the characters accumulated in the receive silo
are transmitted to the printer. When "Local Controller Mode" is
exited to Local Mode, the terminal just redirects the keyboard
from the printer port to the screen (and parser). Local echo is
disabled while in Local Controller Mode'. CRM mode is disabled
when in local controller mode.
Local Controller mode is used to allow keyboard output to a
printer. In local controller mode, the setting of printer to host
mode is ignored and characters received from the printer are
ignored (except XON and XOFF if XOFF support is enabled).
7.3.11
Printer Style
Three Printer Style modes are available to match the range of
character sets the printer is capable of supporting. These are:
National Only; National + Line Drawing; and All Characters. These
modes are described in the next section on TRANSMITTING PRINT
DATA.
PRINTER STYLE:
(NATIONAL_ONLY, NATIONAL_PLUS_LINE_DRAWING, ALL_CHARACTERS);
7.4
TRANSMITTING PRINT DATA
Each time a print of screen data is requested,
three things
happen. First, the p'rinter is "initialized" to a known or assumed
character set state, either via assumption, or via designating
escape sequences and/or locking shift sequences.
Next,
the
characters are transmitted.
This
may
require
additional
designating
escape
sequences
and/or shifts.
Finally,
the
transmission is ended by putting the printer into a known state.
Since the host may access the printer during auto-print mode,
the
complete initialization / transmission / closing sequence is used
for each line printed.
7.4.0.1
Print National. Only
Environment)
(7-bit
Or
a-bit
Printer
Port
ASSUMPTIONS: This mode is included for backward support of "dumb"
printers which do not understand designating escape sequences, or
which do not support any character set other than a National
Replacement Character Set (NRCS). The terminal and printer have
already been configured to use the same NRC Set.
The terminal
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28~Apr-1987
Page 7-14
determines which NRC Set to use based on the keyboard dialect
(ASCII is the NRC Set for North America). Refer to the National
Replacement Character Set section below.
INITIALIZATION: No escape sequences or shifts are sent.
It is
assumed that the printer is ready to print NRCS characters as GL.
TRANSMISSION:
The characters are sent. No escape sequences or
shifts are sent. If a character which is not in the selected NRCS
is encountered, fallback is used.
If a-bits is set,
the most
significant bit is always zero. Characters with the "invisible"
character attribute are transmitted as spaces. All other Display
Attributes are ignored.
CLOSING:
No closing sequences are sent.
FALLBACK: Cha racters whi ch have an· NRCS equivalent (have an
identical dot matrix representation to an NRCS character) are sent
as the NRCS equivalent. Otherwise fallback is used (a single
unsupported character maps to one or more supported characters).
Refer to the fallback section and tables later in this chapter.
7.4.0.2
Print National + Line Drawing
Port Environment)
(7-bit
Or
8-bit
Printer
ASSUMPTIONS:
The printer supports ASCII, the VT100 line drawing
set (DEC Special Graphics),
the current NRCS (when in national
mode), designating escape sequences for GO and Gl, and LSO/LSI
(SO/SI).
It does not support 8-bit controls.
The terminal
determines which NRCS to use based on the keyboard dialect
(ASCII
is the NRCS fdr North America). Refer to the National Replacement
Character Set section below.
INITIALIZATION: The printer is initialized to be sure the desired
NRCS is designated as GO, and DEC Special Graphics (line drawing)
is designated as Gl. GO is invoked. The sequences sent are:
ESC
B
ESC
LSO
o
(Designate
require a
(Designate
(Invoke GO
ASCII to GO, note other NRC Sets
different designating sequence)
DEC Special Graphics to Gl)
to GL)
TRANSMISSION: The characters are sent, using LSO and LSI to
choose between NRCS and DEC Special Graphics.
If a character is
in both sets (e.g., uppercase letters), it is sent as NRCS.
If a
character is in ASCII but not in the current NRCS, ASCII is
designated as GI and invoked as needed.
The next line drawing
character encountered will cause the DEC Special Graphics set to
again be designated as GI.
If a character which is not in the
current NRCS, ASCII, or DEC Special Graphics set is encountered,
fallback is used.
In an 8-bit environment the most significant
Page 7-15
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
bit is always set to zero.
In this mode the display attributes are also sent.
Display Attributes section below.
Refer
to
the
CLOSING: LSO is sent, if necessary.
If ASCII was the last set
designated
as
GI, DEC Special Graphics (line drawing)
is
re-designated. This leaves the printer with NRCS as GO, DEC
Special Graphics as GI, and GO invoked to GL.
FALLBACK:' If the character has an equivalent (the same dot matrix
representation) as a character in either the NRCS, DEC Special
Graphics, or ASCII sets, then the equivalent is used.
Otherwise
fallback is used (a single unsupported character maps to one or
more supported characters). Refer to the faliback section and
tables later in this chapter.
7.4.0.3
Print All Characters (7-bit Printer Port Environment)
ASSUMPTIONS: The printer supports all the character sets in use
by the terminal, designating escape sequences for GO, GI, G2, G3,
and charact~r set shifts LSO, LSI,
SS2 and SS3.
If the User
Preference Supplemental set (UPSS) extension is used, the printer
has already been configured with the same UPSS.
If a ORCS is
used,
the host has already down line loaded the printer's
character set(s) to match the video terminal's (in Printer
Controller Mode,
if necessary).
Printers with changeable font
cartridges must support all of the
above
character
sets
simultaneously. No font selection commands will be used.
INITIALIZATION: The printer is initialized to correspond with the
terminal.
The character sets currently designated as GO, GI, G2,
and G3 in the terminal are designated as GO, GI, G2, and G3 in the
printer respectively.
GO is invoked to GL. The sequences sent
are:
ESC
ESC
ESC *
ESC +
LSO
Dscs
Dscs
Dscs
Dscs
(Designate
(Designate
(Designate
(Designate
(Invoke GO
a 94 character
a 94 character
a 94 character
a 94 character
to GL)
set
set
set
set
as
as
as
as
GO)
GI)
G2)
G3)
Where "Dscs" consists of zero, on-e, or two intermediate
characters and a final character for the character set
being designated.
If a 96 character set is to be designated, the first
intermediate character will change as follows:
ESC - Dscs
ESC . Dscs
(Designate a 96 character set as GI)
(Designate a 96 character set as G2)
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
ESC /
Dscs
Page 7-16
(Designate a 96 character set as G3)
If one of the character sets is the UPSS, it is designated
as the UPSS, not the specific character set chosen.
TRANSMISSION: The characters are sent, using LSO and LS1
choose between the character sets in GO and G1.
If a character
in the set deSignated as G2, SS2 is used to temporarily invoke
into GL.
If a character is in the set designated as G3, SS3
used to temporarily invoke G3 into GL.
If a character from
alternate character set is encountered the alternate set
designated as G3 and SS3 is used to send it.
to
is
G2
is
an
is
The priority order for sending characters contained in more than
one set is ASCII, UPSS, DEC Supplemental, ISO Supplemental, DEC
Technical, and DEC Special Graphics.
In this mode the display attributes are also sent.
Display Attributes section below.
Refer
to
the
CLOSING: LSO is sent, if necessary.
If an alternate set was the
last set designated as G3, G3 is re-designated. This leaves the
printer with GO invoked as GL; GO, Gl, G2, and G3 the same as the
terminal.
FALLBACK: When Print All Characters is selected, fallback is only
provided for CRM characters. CRM characters do not belong to a
character set. Refer to the fallback section and.tables later in
this chapter.
7.4.0.4
Print All Characters (8-bit Printer Port Environment)
ASSUMPTIONS: The printer supports all the character sets in use
by the terminal, designating escape sequences for GO, Gl, G2, G3,
and character set shifts LSO, LS1, LS2R and LS3R.
If the User
Preference Supplemental Set (UPSS) extension is used, the printer
has already been configured with the same UPSS.
If a DRCS is
used,
the host has already down line loaded the printer's
character set(s) to match the video terminal's (in Printer
Controller Mode, if necessary).
Printers with changeable font
cartridges must support all. of the
above
character
sets
simultaneously. No font selection commands will be used.
INITIALIZATION: The printer is initialized to correspond with the
terminal.
The character sets currently designated as GO, G1, G2,
and G3 in the terminal are designated as GO, Gl, G2, and G3 in the
printer respectively.
GO is invoked to GL, and G2 is invoked to
GR. The sequences sent are:
ESC ( Dscs
(Designate a 94 character set as GO)
VSRM - ~rinter Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
ESC
Dscs
ESC * Dscs
ESC + Dscs
LSO
LS2R
(Designate
(Designate
(Designate
(Invoke GO
(Invoke G2
page 7-17
a 94 ch 9 racter set as G1)
a 94 character set as G2)
a 94 character set as G3)
to GL)
to GR)
Where "Dscs" consists of zero, one, or two intermediate
characters and a final character for the character set
being designated.
If a 96 character set is to be designated, the first
intermediate character will change as follows:
ESC - Dscs
ESC
Dscs
ESC / Dscs
.
(Designate a 96 character set as G1)
(Designate a 96 character set as G2)
(Designate a 96 character set as G3)
If one of the character sets is the uPSS, it is designated
as the UPS, not the specific character set chosen.
TRANSMISSION:
The characters are sent using LSO/LS1 to choose
between the character sets in GO and G1, and Ls2R/LS3R to choose
between the character sets in G2 and G3.
If a character from an
alternate character set is encountered,
the alternate set is
designated as G3, invoked by LS3R, and then sent.
The priority order for sending characters contained in more than
one set is ASCII, UPSS, DEC Supplemental, ISO Supplemental, DEC
Technical, and DEC Special Graphics.
In this mode the display attributes are also sent.
Display Attributes section below.
Refer
to
the
CLOSING:
LSO and LS2R are sent if necessary.
If an alternate set
was the last set designated as G3, G3 is re-designated. This
leaves the printer with GO invoked as GL and G2 invoke as GR; GO,
GI, G2, and G3 the same as the terminal.
FALLBACK: When Print All Characters is selected, fallback is only
provided for CRM characters. CRM characters do not belong to a
character set.
Refer to the fallback section and tables later in
this chapter.
Documented Exception
The "All Characters" mode in the VT200 family
designated ASCII as GO, Line Drawing as G1, DEC
Multinational as G2, and the DRCS as G3 if needed.
In the VT300 family, possible support for the UPSS
(S-bit architecture), DEC Technical,
and.
DEC
Publishing
meant VT200 "All Characters" mode
page 7-18
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
really printed multinational characters.
In the
VT300,
"All Characters" mode was changed to print
all characters more efficiently.
Some terminals
may provide a "Multinational" mode similar to "All
Characters" on the VT200 to support fallbacks for
other character sets (DEC Technical for example).
7.4.1
National Replacement Character sets
There are 12 NRC Sets currently defined for 16 keyboard dialects.
The National Replacement Character set for each keyboard dialect
is as follows:
Keyboard Dialect
NRC Set
North American
Flemish
Canadian (French)
British
Danish
Finnish
Austrian/German
Dutch
It.alian
Swiss (French)
Swiss (German)
Swedish
Norwegian
Belgian/French
Spanish
Portuguese
ASCII
French NRC Set
French Canadian NRC Set
U.K. NRC Set
Norwegian/Danish NRC Set
Finnish NRC Set
German NRC Set
ASCII
Italian NRC Set
Swiss NRC Set
Swiss NRC Set
Swedish NRC Set
Norwegian/Danish NRC Set
French NRC Set
Spani sh NRC Set .
portuguese NRC Set
Designating Characters
B
=
(4/2)
(5/2)
( 3/9 )
(4/1)
(6/0)
(3/5)
(4/11)
(4/2)
(5/9)
(3/13)
(3/13)
7
( 3/7 )
R
9
A
5
K
B
Y
=
(6/0 )
R
( 5/2 )
Z (5/10)
% 6
(2/5 3/6)
The National Replacement Character Sets are available
the appropriate keyboard is selected in the terminal.
only
Deviation Note
VT200 family devices support the Dutch
(designating character "4" (3/4)).
NRC
set
Guideline:
LA120
non-conforming
sequences:
Finland
"C"
(4/3); Sweden "H"
(4/8);
French
Canadian "Q" (5/1); Norway/Denmark "6"
(3/6)
or
"E" (4/5).
when
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.4.2
page 7-19
Display Attributes
When the Printer Style is "National + Line Drawing", or "Print All
Characters", the display attributes are also sent. The attributes
are of two kinds:
line attributes and character attributes.
The
line attributes will be initialized at the beginning of each line
as follows:
Single width lines Double Width lines Top half of Double Height Bottom half of Double Height -
ESC
ESC
ESC
ESC
#
#
#
#
5
6
3
4
The character attributes will be initialized at the start of
print operation as follows:
each
ESC [ 0 m
Every time the character attributes change,
the appropriate
control sequence setting the character attributes will be sent.
The sequences are of the form:
ESC [ 0 ; Ps ; Ps ; Ps m
with the following parameters:
o
1
4
5
7
all
for
for
for
for
attributes off
bold character attribute
underscore character attribute
blink character attribute
reverse video char~cter attribute
At the end of each print (line or page), the following
closing sequences will be sent as appropriate:
ESC [ 0 m
Note: characters with the "invisible" character attribute
parameter 8) are always sent to the printer as spaces.
7.4.3
(SGR
Trailing Spaces
Trailing spaces are spaces which come after all
printable
characters on a line.
Note that in general trailing spaces
themselves are not printed.
In "National Only" trailing spaces
are not printable and therefore are not sent to the printer.
In
"National + Line Drawing" and "All Characters" some spaces have
video character attributes, and are therefore printable.
In this
context, spaces with the normal video character attribute which
follow all printable characters (including spaces with video
attributes on), are not sent to the printer.
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
7.S
Page 7-20
FALLBACK PRESENTATION OF GRAPHIC CHARACTERS
When the Printer Style specifies that the device attached to the
Printer Port is not capable of presenting graphic characters which
can be presented on the terminal, the terminal attempts to display
a reasonable approximation of that character on the printer for
the Printer Port function operations, and in, Auto-Print mode.
These approximations,
or "Fallbacks", are not necessarily unique
but are intended to allow the reader of the result to be able to
reconstruct the original text using context to resolve conflicts.
NOTE
These fallbacks are not performed in Printer
Controller Mode or in Printer to Host operations.
7.5.1
NRC Fallbacks
No NRC fallbacks are required.
There are no NRCS characters which
are not in DEC Multinational or ISO Latin Alphabet Nr 1 (see the
corresponding fallback sections).
Deviation Note
In older devices,
two
National
Replacement
Characters in the Dutch NRC set are not available
in DEC-MCS, or ISO Latin-1.
If the Printer Style
is set to National Only or National + Line
Drawing, and one of these characters occur in the
data stream and, is not available in the current
national set, fallback is used as described below.
Character
ij
florin
7.5.2
Fallback Presentation
ij vowel (Dutch NRCs 5/11)
florin
(Dutch NRCs 7/12)
ij
f
DEC Special Graphics Fallbacks
If the Printer Style is set to "Print National Only", the terminal
will
represent all characters from the DEC Special Graphic (VT100
Line Drawing) character set as one or two character sequences from
the ASCII character set which approximate the desired graphic.
These characters have been
chosen
so
that
diagrams
or
presentations that use the mosaic line combinations will align
properly and present a reasonable appearance.
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
Character
<**>
<+->
< 1>
<"X"I >
< 1_>
<+>
<-->
<- >
< >
<-I>
< L>
<>=>
<][>
=>
<.A>
diamond
filled block
HT symbol
FF symbol
CR symbol
LF symbol
plus/minus sign
degree sign
NL symbol
VT symbol
lower right corner
upper right corner
upper left corner
lower left corner
intersect·ion
scan I
scan 3
scan 5
scan 7
scan 9
intersect from right
intersect from left
intersect from top
interse9t from bottom
vertical bar
less than or equal to
greater than or equal to
Pi symbol
not-equal to
pound sign
centered dot
7.5.3
DEC Supplemental Fallbacks
«->
Page 7-21
Fallback Presentation
*
#
HT
FF
CR
LF
+
o
NL
VT
+
+
+
+
+
=
-
-+
+
+
+
1
<>=
Pi
<>
#
If the Printer Style is set to "Print National Only",
or "Print
National
+
Line Drawing" the terminal will
represent all
characters from the DEC Supplemental character set as a sequence
of one or more characters from the ASCII character set which
approximate the desired graphic as described in the fallback table
below.
I
I
VSRM - Printer Port Extension EL-00070 ... 07
*** COMPANY CONF - DEC Internal.use Only 28-Apr-1987
Character
< a>
«<>
<0">
<+->
<2">
<3">
<. "'>
<1"'>
< 0>
<»>
<14>
<12>
<11>
SP03
SC04
SC02
sCOS
SM24
SC01
SMS2
sM21
sP17
SM19
sA02
NS02
NS03
sM17
sM2S
sM26
NS01
SM20
SP18
NF04
NFOl
sP16
LAll
LA12
LA13
LA14
LA1S
LA16
LA17
LA18
LA19
LA20
LA27
LA28
LAS1
LAS2
LC41
LC42
LE1!
LE12
LE13
LE14
LE1S
LE16
LE17
LE18
Ll11
LI12
LI13
LI14
LI15
Fallback Presentation
inverted exclamation mark
cent sign
pound sign
yen sign
section sign
general currency sign
copyright sign
feminine ordinal
angle quotation mark left
degree sign
plus/minus sign
superscript 2
superscript 3
micro sign
paragraph sign
middle dot
superscript 1
masculine ordinal
angle quotation mark right
fraction one quarter
fraction one half
inverted question mark
small a with acute accent
capital A with acute accent
small a with grave accent
capital A with grave accent
small ~ with circumflex
capital A with circumflex
small a with die~esis or umlaut
capital A with dieresis or umlaut
small a with tilde
capital A with tilde
small a with ring
capital A with ring
small ae diphthong
capital AE diphthong
small c with cedilla
capital C with cedilla
small e with acute accent
capital E with acute accent
small e witp grave accent
capital E with grave accent
small e with circumflex
capital E with circumflex
small e with dieresis or umlaut
capital E with dieresis or umlaut
small i with acute accent
capital I with acute accent
small i with grave accent
capital I with grave accent
small i with circumflex
c
#
y
Sc
o
(C)
a
«
o
+
2
3
u
Pr
1
o
»
1/4
1/2
1
a
A
a
A
a
A
a
A
a
A
a
A
ae
AE
c
C
e
E
e
E
e
E
e
E
i
I
i
I
i
page 7-22
VSRM - Printer Port Extension EL-00070-07
*** COMPANY CONF - DEC Internal Use Only 28-Apr-1987
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I.
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I
<0'>
<0' >
<0'>
<0'>
<0">
<0">
<0">
<0">
<0->
<0->
<0/>
<0/>