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 <. "'> <1"'> < 0> <»> <14> <12> <11>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"> 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/>