14 002111 00_Programming_the_Display_Terminals_s_D217_D413_and_D463_Oct91 00 Programming The Display Terminals S D217 D413 And D463 Oct91

14-002111-00_Programming_the_Display_Terminals_s_D217_D413_and_D463_Oct91 14-002111-00_Programming_the_Display_Terminals_s_D217_D413_and_D463_Oct91

User Manual: 14-002111-00_Programming_the_Display_Terminals_s_D217_D413_and_D463_Oct91

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

Download14-002111-00_Programming_the_Display_Terminals_s_D217_D413_and_D463_Oct91 14-002111-00 Programming The Display Terminals S D217 D413 And D463 Oct91
Open PDF In BrowserView PDF
4.DataGeneraI

Data General Corporation, Westboro, Massachusetts 01580

Customer Documentation

Programming the Display
Terminal: Models D217,
D413,and D463
014-002111-00

Programming the Display
Terminal:
Models D217, D413, and D463
014-002111-00

Ordering No. 014-002111
Copyright © Data General Corporation, 1991
All Rights Reserved
Printed in the United States of America
Rev. 00, October 1991

Notice
DATA GENERAL CORPORATION (DGC) HAS PREPARED THIS DOCUMENT FOR USE BY DGC
PERSONNEL, IJCENSEES, AND CUSTOMERS. THE INFORMATION CONTAINED HEREIN IS THE
PROPERTY OF DGC, AND THE CONTENTS OF THIS MANUAL SHALL NOT BE REPRODUCED IN
WHOLE OR IN PART NOR USED OTHER THAN AS ALLOWED IN THE DGC IJCENSE
AGREEMENT.
DGC reserves the right to make changes in specifications and other information contained in this
document without prior notice, and the reader should in all cases consult DGC to determine whether any
such changes have been made.
THE TERMS AND CONDITIONS GOVERNING THE SALE OF DGC HARDWARE PRODUCTS AND
THE IJCENSING OF DGC SOFTWARE CONSIST SOLELY OF THOSE SET FORTH IN THE
WRITTEN CONTRACTS BETWEEN DGC AND ITS CUSTOMERS. NO REPRESENTATION OR
OTHER AFFIRMATION OF FACT CONTAINED IN THIS DOCUMENT INCLUDING BUT NOT
LIMITED TO STATEMENTS REGARDING CAPACITY, RESPONSE-TIME PERFORMANCE,
SUITABILITY FOR USE, OR PERFORMANCE OF PRODUCTS DESCRIBED HEREIN SHALL BE
DEEMED TO BE A WARRANTY BY DGC FOR ANY PURPOSE, OR GIVE RISE TO ANY LIABILITY OF
DGC WHATSOEVER.
AViiON, CEO, DASHER, DATAPREP, DESKTOP GENERATION, ECLIPSE, ECLIPSE MV/4000,
ECLIPSE MV/8000, ECLIPSE MV/8000, GENAP, INFOS, microNOVA, NOVA, PBESENT, PROXI,
SWAT, and TRENDVIEW are U.S. registered trademarks of Data General Corporation; and
AOSMAGIC, Aos/vsMAGIC, AROSE/PC, ArrayPlus, AV Object Office, AV Office, BBMlJnk,
BusiGEN, BusiPEN, BusiTEXT, CEO Connection, CEO ConnectionILAN, CEO Drawing Board,
CEO DXA, CEO Light, CEO MAILI, CEO Object Office, CEO PXA, CEO Wordview, CEOwrite,
COBOUSMART, COMPUCALC, CSMAGIC, DASHER/One, DASHERI286,DA.SHERI286-12c,
DASBERJ286-l.2j,DASBERI3S6, DASBERI386-16c, DASHEHJ386-25, DASHERI386-25k,
DASBERJ3868X, DASBERJ386SX-16, DASHER/386SX-20, DASBERl48~5, DASHERILN,
DATA GENERAUOne, DESKTOPIUX, 00/500, OO/AROSE, DGConneet, OOIDBUS,
DGlFontstyles, DG/GATE, DGlGEO, DGIHEO, DGIL, DGILIBRARY, DGIUX, DGIXAP,
ECLIPSE MV/lOOO, ECLIPSE MVI1400, ECLIPSE MVI2000, ECLIPSE MVI2500,
ECLIPSE MV/3500, ECLIPSE MV/5000, ECLIPSE MV/5500, ECLIPSE MV/5600,
ECLIPSE MVnSOO, ECLIPSE MV/9300, ECLIPSE MVI9500, ECLIPSE MV19600,
ECLIPSE MV/lOOOO, ECLIPSE MVI15000, ECLIPSE MV/ISOOO, ECLIPSE MVI20000,
ECLIPSE MV/30000, ECLIPSE MV/40000, FORMA-TEXT, GATEKEEPER, GDCIlOOO, GDC/2400,
microECLIPSE, mieroMV, MVIUX, PC IJaison, RASS, REV-UP, SLATE, SPARE MAIL,
SUPPORT MANAGER, TEO, TEOI3D, TEOlElectromcs, TURBO/4, UNITE, WALKABOUT,
WALKABOUTISX, and XODIAC are trademarks of Data General Corporation.
UNIX is a U.S. registered trademark of American Telephone and Te1egxaph Company.
VP/ix is a trademarlc of Interactive Systems Corporation.
DEC is a U.S. registered trademark of Digital Equipment Corporation.
Tektronix is a U.S. registered trademark of Tektronix, Incmporated.
MS-DOS is a U.S registered trademark of Microsoft Corpoxation.
AT is a U.S. registered trademarlc of International Business Machines Corporation.

Programming the Display Terminal:
Models D217, D413, and D463
014-002111-00

Revision History:
Original Release - October 1991

Preface
This manual provides information on the programming environment of the D217, D413, and D463
display terminals. Intended for persons programming host-resident software, this manual was
designed as a reference tool and does not explain basic operating functions of these terminals. Refer
to Installing and Operating D216E+, D217, D413, and D463 Display Terminals (014-001767) for
information on operating one of these terminals.
. This reference manual is organized as described below:
Chapter 1

Characteristics of the programming environment that are common to all operating
modes or emulations; everyone should read this chapter.

Chapter 2

Data General native-mode operations and commands.

Chapter 3

VT320, VT100, and VT52 emulations and control sequences.

Chapter 4

Tektronix® 4010 emulation and commands.

Chapter 5

PCTERM operation and commands. Although PCTERM is actually an operating
mode of the VT320/100 emulation, it is covered within its own chapter to avoid
confusion within Chapter 3.

Appendix A

Tables of all character sets used in any emulation or operating mode.

Appendix B

Keyboard layouts for all national-language keyboards supported on these terminals.

Appendix C

Sample code (in C and FORTRAN 77) that illustrates the programming environment
within several emulations.

Contacting Data General
Data General wants to assist you in any way it can to help you use its products. Please feel free to
contact the company as outlined below.

Manuals
If you require additional manuals, please use the enclosed TIPS order form
(United States only) or contact your local Data General sales representative.

Telephone Assistance
If you are unable to solve a problem using any manual you received with your system, free telephone
assistance is available with your hardware warranty and with most Data General software service

014~02111

iii

options. If you are within the United States or Canada, contact the Data General Service Center by
calling 1-800-DG-HELPS. Lines are open from 8:00 a.m. to 5:00 p.m., your time, Monday through
Friday. The center will put you in touch with a member of Data General's telephone assistance staff
who can answer your questions.
For telephone assistance outside the United States or Canada, ask your Data General sales
representative for the appropriate telephone number.

Joining Our Users Group
Please consider joining the largest independent organization of Data General users, the North
American Data General Users Group (NADGUG). In addition to making valuable contacts, members
receive FOCUS monthly magazine, a conference discount, access to the Software Library and
Electronic Bulletin Board, an annual Member Directory, Regional and Special Interest Groups, and
much more. For more information about membership in the North American Data General Users
Group, call 1-800-877-4787 or 1-512-345-5316.

End of Preface

iv

014-002111

Contents

Chapter 1 - Introduction
Terminal Features ............................................................
Enhancements for the D413.D463 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Supported Emulations and Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Summary of On-Line Operations................................................
Communications Interface ......................................................
Input Buffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Flow Control .................................................................
The Character Generator ........ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25th Row Support.. . . .. . . . . . . . . . ... . .. . . . ... . ... . . . . . . . .. . . ... . .. .. . . . . . . . . . . .
Term-Server Support. ... . . . . . . . . ... . . .. . . . ... .. . . .. . . . . . . .. .. . . .. . .. . . . . .. . . . .

1-2
1-3
1-3
1-4
1-4
1-4
1-5
1-5
1-6
1-6

Chapter 2 - Data General Native-Mode
Data General Native-Mode -

Summary of O.perations ................... 2-1

Data General Native-Mode Features .............................................
Keyboard Character Generation .................................................
Forming Command Arguments ..................................................
Recovering a Decimal Value for Command Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Forming Location Arguments ...................................................
Recovering a Decimal Value for Location Arguments. . . . . . .. .. . . .. .. .. . . . . . . . . . . .
Character Sets . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hard Character Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Soft Character Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphics. . . . .. . . . . .. . . . . .. . . . . . . . . . .. . . . .... . . . . .. . . .. . . . . .. .... . . . .. . . .. . . . .
The Graphics Coordinate System .............................................
Graphics Cursor ...........................................................
Windows ....................................................................
Lead-In Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Host-Programmable Function Keys ..............................................

014-002111

2-4
2-4
2-7
2-9
2-10
2-12
2-13
2-13
2-15
2-17
2-17
2-18
2-19
2-19
2-20
2-22

"

Debugging Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dual Emulation Support .......................................................

Data General Native-Mode -

Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 2-25

Fonnat of Command Listings in this Section .......................................
Command Syntax and Code Conventions ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Character Set Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shift Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shift In ..................................................................
Deallocate Character Sets ...................................................
Define Character ..........................................................
Reserve Character .........................................................
Read Characters Remaining .................................................
Character Attribute Commands. ... . ... ... .... . . . . .. .. . .... ... ... .. . . . . .. . . . . . . ..
Change Attributes .........................................................
DimOn..................................................................
Dim Off .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Blink On .................................................................
Blink Off . . . . .. ... . .. . . . . ... . . .... . . .. .. . . . .. .. . . . ... .. . . ... . . . . .. . . . . . . ..
Blink Enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Blink Disable .............................................................
Underscore On ............................................................
Underscore Off ...... ',' . . . . . . . . ... . . . .. .. . . .. .. .. .. ..... . . . ... . . . .. . . . . ... .
Reverse Video On ..........................................................
Reverse Video Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protect On .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protect Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . • . . . . . . . .
Protect Enable ............................................................
Protect Disable ............................................................
Double HighIDouble Wide ...................................................
Field Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Page Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Relative Cursor-Positioning Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Left ...............................................................
Cursor Up ................................................................
Cursor Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
New Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Carriage Return ...........................................................
Margins Commands ...........................................................
Set Margins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Alternate Margins ......................................................

vi

2-23
2-23

2-26
2-26
2-27
2-28
2-28

2-28'
2-28
2-29
2-29
2-30
2-31
2-31
2-32
2-32
2-32

2-32
2-32
2-33
2-33
2-33
2-33
2-33
2-34

2-34
2-34
2-34

2-35
2-35
2-36
2-37

2-37
2-37
2-37
2-38
2-38
2-38
2-39
2-39
2-39

014-002111

Restore NorIllal Margins ....................................................
Screen Management qommands .................................................
Write Window Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Window Home. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Windows ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set 25th Line Mode ........................................................
Push.....................................................................
Pop......................................................................
Write Screen Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select Compressed Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select NOrIllal Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Named Save/Restore Cursor .................................................
SaveJRestore Screen Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Screen Home .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Row Length. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scrolling Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Show Columns ............................................................
Set Scroll Rate ......................................................... :..
Scroll Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Scroll Up .................................................................
Scroll Left ................................................................
Scroll Right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Roll Enable ...............................................................
Roll Disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Horizontal Scroll Disable ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Horizontal Scroll Enable ....................................................
Editing Commands ........................................................ ". . . .
Erase Window. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erase Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Erase to End of Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Insert Line ...............................................................
Delete Line ...............................................................
Insert Line Between Margins ................................................
Delete Line Between Margins ................................................
Erase Unprotected. ... ... .... . . . ... . . . . .. . .. . . . .. .... .. . .. . . .. ... .. . . . .. .. .
Insert Character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Delete Character. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Programmable Function Key Commands ..........................................
Host Programmable Function Keys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reporting Commands ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Report Screen Size.. .. . .. . ... . . . . . .. ... .. . . . . .... . .... . . .. . . .. . .. . . . . . . . .. .
Read Horizontal Scroll Offset ................................................
Read Window Address . ,. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

014-002111

2-40
2-41
2-41
2-42
2-43
2-44
2-44
2-45
2-46
2-47
2-48
2-48
2-49
2-49
2-51
2-51
2-51
2-51
2-52
2-52
2-52
2-53
2-53
2-54
2-54
2-54
2-55
2-55
2-55
2-55
2-55
2-56
2-56
2-56
2-57
2-57
2-57
2-58
2-58
2-61
2-61
2-62
2-62

vii

Read Screen Address .......................................................
Read Window Contents. .. .... . . ..... . .... . . . ... .. .. ..... ..... .. . . . ... . . ....
Read Model ID .....................................................•......
Read New Model ID ................................. ; . . . . . . . . . . . . . . . . . . . . . .
Dual-Emulation Support Commands .............................................
Hot Key Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Switch Emulation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Split Screen Mode ......................................................
Set First Row To Display .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Device Options .... . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Miscellaneous Commands ......................................................
Set Cursor Type ...........................................................
Set Model ID .......................................................... '....
Set Clock Time ............................................................ '
Bell ........................................................................
Reset... ... .. . . ... .. .. .. . . . . . . .... ... ... ... . ... .. ..... ... .. . ... .... . . ....
Select 7/8 Bit Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . .
Set Keyboard Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
tJNIX Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drawing Commands .......................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Line .....................................................................
Arc ........... ...........................................................
Bar ............ '" .. ..... .. . ...... .. . .. . . . . . . .. .. . . .. . ... .. . . . . . ... . . ....
Polygon Fill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Pattern ...............................................................
Set Foreground Color .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphics Cursor Commands ....................................................
Read Cursor Location.. . . ..... . .. . ... . ... . . .. ... .. .. . . . .. ...... . . . . ... . . .. . .
Cursor On ................................................................
Cursor Off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Location ...........................................................
Cursor Track . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Attributes ..........................................................
Cursor Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Printer Commands ............................................................
Print Window .............................................................
Print Form ...............................................................
Form Bit Dump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Window Bit Dump .........................................................
Print Pass Through On .....................................................
Print Pass Through Off .................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Printer Pass Back To Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulprint On . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

viii

2-63
2-63

2-64
2-65
2-67
2-67
2-67
2-68
2-68
2-69
2-70
2-70
2-71
2-71
2-71
2-71
2-72
2-72
2-73

2-74
2-74
2-75
2-75
2-76
2-76
2-77
2-78
2-78
2-78
2-78
2-79
2-79
2-80
2-80
2-81
2-81
2-81
2-82
2-83
2-84
2-84
2-85
2-85

014-002111

Simulprint Off. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VT-Style Autoprint On .....................................................
VT-Style Autoprint Off ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select Printer National Character Set .........................................
Debugging Commands .........................................................
Data Trap Mode ...........................................................
Diagnostic Commands .........................................................
Read Cursor Contents ......................................................
Read Bit Contents .........................................................
Character Loopback ........................................................
Fill Screen With Character ..................................................
Fill Screen With Grid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display Character Generator Contents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Perform UART Loopback Test. . . . . .. . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . .

Chapter 3 -

VT320/100/52 Emulations

VT320/100 Emulation -

Summary of Operations ................... ..... . 3-3

VT320/100 Emulation Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control Codes ................................................................
Received Control Codes .....................................................
Transmitted Control Codes ..................................................
Using B-bit Code in 7-bit Environments .......................................
Control Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Escape Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Device Control Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Generated Keyboard Codes .....................................................
Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hard Character Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Soft Character Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ANSI Standard Mode Switches ..................................................
ANSI Private Mode Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User-Defined Keys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Character Attributes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Line Attributes ...............................................................

014-002111

2-86
2-86
2-86
2-87
2-88
2-88
2-89
2-89
2-90
2-90
2-91
2-91
2-91
2-91

3-4 ,
3-5
3-5
3-8
3-12
3-13
3-13
3-13
3-14
3-17
3-17
3-20
3-23
3-25
3-27
3-27
3-28

ix

VT320/100 Emulation -

Control Sequences ............................ 3-29

Format of Control Sequences in This Section .......................................
A Note on Syntax Conventions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hard Character Set Control Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequences for Designating Character Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Assign User-Preferred Supplemental Set (AUPSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequences for Invoking Character Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shift In (SI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shift Out (SO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. '. . . . . . . . . . . . . . . . .
Shift Lock Two (SL2) .......................................................
Shift Lock Three (SL3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shift Lock G1 GR ..........................................................
Shift Lock G2 GR ................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Shift Lock G3 GR ..........................................................
Single Shift Two (SS2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Single Shift Three (SS3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Soft Character Set Control Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sequences for Downloading Soft Characters (VT320) .............................
Sequences for Clearing Downloaded Soft Character Sets ..........................
Attribute Control Sequences ....................................................
Line Attribute Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Character Attribute Sequences ........ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select Graphic Rendition (SGR) ..............................................
Select Character Attributes (SCA) ............................................
Cursor Positioning Control Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Up (CUD) ..........................................................
Cursor Down (CUD) ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Forward (CUF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Backward (CUB) ....................................................
Cursor Position (CUP) ......................................................
Horizontal and Vertical Position (HVP) ........................................
Index (IND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reverse Index (RI) .........................................................
Next Line (NEL) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Save Cursor (SC) ..........................................................
Restore Cursor (RC) ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tabulation Control Sequences ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Horizontal Tab (HTS) ...................................................
Clear Tab Stops (TBC) ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

x

3-30
3-30
3-31
3-31
3-32
3-32
3-32
3-32
3-33
3-33
3-33
3-33
3-33
3-34
3-34
3-35
3-35
3-36
3-37
3-37
3-38
3-38
3-38
3-39
3-39
3-39
3-40
3-40
3-40
3. 41
3-41
3-41
3-42
3-42
3-42
3-43
3-43
3-43

014-002111

Screen Editing Control Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Delete Character (DCH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Insert Character (ICH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Insert Line (IL) ......... :-. . . . . . . . . . . . . . . . . . . . . . .. . ... . . . . . . . . . . . . . . . . . . . . . . .
Delete Line (DL) ...... . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . . . .
Erase Character (ECH) .....................................................
Erase In Line (EL) .........................................................
Erase In Display (ED) ......................................................
Selective Erase In Line (DECSEL) ............................................
Selective Erase In Display (DECSED) .........................................
Scroll Down (SD)T320 ......................................................
Scroll Up (SU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . .
ANSI Standard Mode Control Sequences ..........................................
Set Mode (SM) ............................................................
Reset Mode (RM) ..........................................................
ANSI Standard Mode Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Action Mode (KAM) ...............................................
InsertlReplace Mode (IRM) ..................................................
SendlReceive Mode (SRM) ..................................................
Line FeedlNew Line Mode (LNM) ............................................
ANSI Private Mode Control Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Private Set Mode (EXSM) ...................................................
Private Reset Mode (EXRM) .................................................
ANSI Private Operating Mode Parameters .....................................
Application/ANSI Cursor Keys Mode (ACKM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Column Mode (CaLM) .....................................................
Scrolling Mode (SCRLM) ....................................................
Screen Mode (SCRNM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor Origin Mode (COM) ..................................................
Set to VT52 Mode ................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Limited Transmit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Auto Wrap Mode (AWM) ....................................................
Auto Repeat Mode (ARM) ...................................................
Print Form Feed Mode (PFF) ................................................
Print Extent Mode (PEXM) ..................................................
Text Cursor Enable Mode (TCEM) ............................................
MultilNational Character Set Mode (MNCSM) ..................................
Numeric Keypad Mode (NKl\1) ...............................................
Backarrow Key Mode (BKM) ................................................
TypewriterlData Processing Keys Mode (KBUM) ................•...............
PCTERM Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

01~2111

3-44
3-44
3-44
3-45
3-45
3-45
3-46
3-46
3-47
3-47
3-48
3-48
3-49
3-49
3-49
3-50
3-50
3-50
3-51
3-51
3-52
3-52
3-53
3-54
3-54
3-54
3-55
3-55
3-55
3-56
3-56
3-56
3-57
3-57
3-58
3-58
3-58
3-59
3-59
3-59
3-60

xi

· Transmission Control Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmit 7-bit Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transmit 8-bit Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User-Defined Key Control Sequences ........... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User Defined Keys (UDK) ...................................................
Miscellaneous Control Sequences ................................................
Soft Terminal Reset ........................................................
Hard Terminal Reset.. .. .. ... . .. ... . . . ... . .. ... .. ...... . .... .. .. . . .. . . . . .. .
Alignment.. .. .. . . . .. ... ... . . . ..... . . ... . ... . . .. ..... . . .... .. .. . . .. . . . . . . .
Display Character Generator Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set/Report Language .......................................................
Set Clock Time ............................................................
Hot Key Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Set Top and Bottom Margins (STBM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bit Dump Screen ...........................................................
Force Display .............................................................
Data Trap Mode ...........................................................
Select Active Status Display (SASD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Select Status Line Type (SSDT) ..............................................
Set Conformance Level (SCL) ................................................
Set Device Options ....................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Split Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reporting Control Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terminal Identification (DECID) .................................................
Device Status Report (DSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Primary Device Attribute Request (DA) ........................................
Secondary Device Attribute Request (SDA) .....................................
Cursor Position Report (CPR) ................................................
User Defined Key Status ....................................................
Keyboard Language.......... ..............................................
Answerback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Printer Port Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Request Terminal State Report (RQTSR) . . .. . . . .. . . .. . .. . . . . . .. .. . . .. .. . . . . . . ..
Restore Terminal State (RSTS) . . .. . .. . .. . .. . . . .. . .. .. .. . . . . . .. . . .. . .. . . . . . . . .
Request Presentation State Report (RQPSR) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Restore Presentation State (RSPS) ..... . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Request Mode (RQM) ......... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Request User-Preferred Supplemental Set (RQUPSS) ...................... . . . . . .
Read Cursor Content .......................................................
Request Selection or Setting (RQSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xii

3-61
3-61
3-61
3-62
3-62
3-63
3-61
3-61
3-61
3-63
3-64
3-64
3-64
3-65
3':'65
3-65
3-66
3-66
3-67
3-67
3-68
3-69
3-70
3-70
3-70
3-71
3-72
3-72
3-73
3-74
3-75
3-75
3-76
3-76
3-77
3-79
3-79
3-81
3-81
3-82

014-002111

Printing Control Sequences .................................................... .3-84
Auto Print Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-84
Print Screen ..............................................................
3-84
Print Cursor Line ....... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3-84
Print Controller Mode ......................................................
3-85

VT52 Emulation Operations and Escape Sequences ...................... 3·85
Character Sets and Graphics ............ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard Generated Codes .....................................................
VT52 Escape Sequences ........................................................

3-86
3-87
3-89

Chapter 4 - Tektronix 4010 Emulation
Emulation Features ...........................................................
Overview of Operational Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alphanumeric Mode ...........................................................
Margins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
View and Hold Submodes ...................................................
Graphic Plot Mode ............................................................
Using Graphic Plot Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphics Input Mode ..........................................................
Alphanumeric Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Graphics Cursor ...........................................................
Hard Copy Command ............................................. . . . . . . . . . . . . .
Hot-Key Switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
User Selectable Options .............. :.........................................
Graphic Input Terminators ..................................................
Line/Local Operation .......................................................
Data Communication Baud Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Control Codes ................................................................

. 014-002111

4-2
4-2
4-3
4-3
4-3
4-4
4-4
4-7
4-7
4-8
4-8
4-9
4-9
4-9
4-9
4-9
4-10

xiii

Chapter 5 - PCTERM Operations
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Inbound (Terminal to Host) Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Flow Control ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Keyboard G-enerated Codes ..................................................
Outbound (Host to Tenninal) Codes ..............................................
Cursor Addressing .........................................................
Character Sets ............................................................
VP/ix getty Setup ..............................................................
Sample terminfo File ...........................................................
Sample VP/ix term File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5-1
5-2
5-2
5-2
5-6
5-6
5-6
5-7
5-7
5-8

Appendix A - Character Sets
United States ASCII Character Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NRC United Kingdom Character Set. . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . .. .
NRC French Character Set .....................................................
NRC German Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NRC SwedishlFinnish Character Set .............................................
NRC Spanish Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NRC Danish/Norwegian Character Set. .. . . . . . . . . . . . . .. . . . . .. . . . . . . . . . . . . . . . . . . . . .
NRC Swiss Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NRC Katakana (GO) Character Set ..............................................
Katakana (Gl) Character Set .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DG International Character Set .................................................
Word-Processing, Greek, and Math Character Set ..................................
DG Line Drawing Character Set .... " ....... " . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . .
DG Special Graphics Character Set (PC Characters) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VT Multinational Character Set .................................................
VT Special Graphics Character Set (VT Line Drawing) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ISO 8859/1.2 Character Set .....................................................
PCTERM Low Character Set (0 hex through 7F hex) ................................
PCTERM High Character Set (80 hex through FF hex) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xiv

A-2
A-3
A-4
A-5
A-6
A-7
A-8
A-9
A-I0
A-ll
A-12
A-13
A-14
A-15
A-16
A-17
A-18
A-19
A-20

014-002111

Appendix B - National Language Keyboards
Canadian/English l07-key Keyboard .............................................
CanadianlFrench l07-key Keyboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Danish l07-key Keyboard ...............................•.......................
French l07-key Keyboard ......................................................
German 107-key Keyboard .....................................................
Italian 107-key Keyboard .................................. " . .. . . . . .... .. .... ..
Katakana l07-keyKeyboard .......................... ..........................
Norwegian l07-key Keyboard .......... :. .. ... . . . . ... . .. . . . .. . .. . . . .. ... .. ... . ..
Spanish 107-key Keyboard .....................................................
SwedishlFinnish 107-key Keyboard... . .. . .. .. . . .. .... . . . . . . . . . .. .. . . .... . . .. . . . .
SwisslFrench 107-key Keyboard. . . . .. . .. .. . . . . . . .... . . .. . .. .. . .. . . . . .. .... .... . .
Swiss/German l07-key Keyboard ........................... :....................
United Kingdom l07-key Keyboard..............................................
United States 107-key Keyboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CanadianlFrench 102-key Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Danish lO2-key Keyboard ......................................................
French l02-key Keyboard ......................................................
German lO2-key Keyboard .....................................................
Italian l02-key Keyboard. . . ... . .. .. . . . .. .. . .. . . . .... . . . . . . .. . .. . . . . . . . . . . .. . . . .
. Norwegian 102-key Keyboard ..... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spanish lO2-key Keyboard .....................................................
SwedishlFinnish 102-key Keyboard ..... ,. .. ... . ...... . .. .. . . .. . . . . . ... . . . . . . . ...
Swiss lO2-key Keyboard .................................. ~ . . . . . . . . . . . . . . . . . . . .
United Kingdom 102-key Keyboard ..............................................
United States 102-key Keyboard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B-2
B-2
B-3
B-3
B-4
B-4
B-5
B-5
B-6
B-6
B-7
B-7
B-8
B-8
B-9
B-9
B-10
B-10
B-1l
B-1!
B-12
B-12
B-13
B-13
B-14

Appendix C - Sample Programs
Notice............................................. ..........................
Data General Native-Mode "C" .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data General Native-Mode ''Fortran 77" ..........................................
'VT320 Emulation "C" ................ '...........................................
'VT320 Emulation "Fortran 77" ..................................................
'VT52 Emulation "C" ...... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
'VT52 Emulation "Fortran 77" ...................................................
Tektronix 4010 Emulation "C" .... . . .. . . . . . . . .. . .. .... . . .. . ... . .. . . . . . .. . . . . . . . ..
Tektronix 4010 Emulation "Fortran 77" ...........................................

014-002111

C-2
C-3
C-10
C-20
C-27
C-37
C-44
C-52
C-59

XV

Figures
Figure

2-1
2-2
2-3
2-4
2-5
2-6
3-1
3-2
4-1

Combining LSBs to Create Decimal Values for Command Arguments ........... .
Combining LSBs to Create Decimal Values for Location Arguments ............. .
Designating Character Sets as GL and GR (Data General Native-Mode) ......... .
Defining a Soft Character Cell Row ....................................... .
Combining 
Pairs to Specify a Soft Character ........................... . The Graphics Coordinate System at Power Up or Reset ....................... . Invoking Character Sets into GL and GR (VT320/100) ........................ . Examples of Double-Height and Double-Width Lines ........................ . The Coordinate System of the Tektronix 4010 Emulation ..................... . 2-9 2-12 2-14 2-16 2-16 2-18 3-19 3-28 4-4 Tables Table 2-1 2-2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-10 2-11 3-1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 xvi Keyboard Generated Codes - Function Keys (Data General Native-Mode) ....... Keyboard Generated Codes - Editing Keypad (Data General Native-Mode) ...... Keyboard Generated Codes - Cursor Keypad (Data General Native-Mode) ...... Keyboard Generated Codes - Numeric Keypad (Data General Native-Mode) . . . . .. Command Argument Translation (Decimal to DG-Hex) . . . . . . . . . . . . . . . . . . . . . . .. Location Argument Translation (Decimal into ASCII Characters) ................ Character Sets Available In Data General Native-Mode ....................... Remapped Key Codes for UNIX Support .................................... Altered Outbound Codes for UNIX Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Altered Data General Native-Mode Commands for UNIX Support ............... Control Codes Altered for UNIX Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. All CO and Cl Control Codes .............................................. Supported CO Control Codes .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Supported Cl Control Codes .............................................. Control Codes Generated from the Editing Keys (VT320/100) ............. . . . . .. Control Codes Generated from the Cursor Control Keys (VT320/100) . . . . . . . . . . . .. Control Codes Generated from the Auxiliary Keypad (VT320/100) ............... Control Codes Generated from the Function Keys (VT320/100) . . . . . . . . . . . . . . . . .. CO Control Codes Generated from the Main Keypad (VT320/100) ................ 2-5 2-6 2-6 2-7 2-8 2-11 2-13 2-20 2-21 2-21 2-22 3-5 3-6 3-7 3-8 3-8 3-9 3-10 3-11 014-002111 3-9 3-10 3-11 3-12 3-13 3-14 3-15 3-16 3-17 3-18 3-19 4-1 4-2 4-3 5-1 5-2 5-3 5-4 5-5 Keyboard Generated Codes - Function Keys (VT320) ......................... Keyboard Generated Codes - Function Keys (VT100) ......................... Keyboard Generated Codes - Editing Keypad (VT320) ........................ Keyboard Generated Codes - Cursor Keypad (VT320 and VT100) . . . . . . . . . . . . . .. Keyboard Generated Codes-Numeric Keypad (VT320 and VT100) ............. Default ANSI Standard Mode Parameters ................................... Default ANSI Private Mode Parameters .................................... Keyboard Generated Codes - Function Keys (VT52) . . . . . . . . . . . . . . . . . . . . . . . . .. Keyboard Generated Codes - Cursor Keys (VT52) . . . . . . . . . . . . . . . . . . . . . . . . . . .. Keyboard Generated Codes - Numeric Keypad (VT52) . . . . . . . . . . . . . . . . . . . . . . .. VT52 Escape Sequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Format of the Alphanumeric Cursor Status Byte ............................. Single Control Codes .................................................... Double Control Codes (Escape Sequences) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. Keyboard Generated Codes - Function Keys (PCTERM) ...................... Keyboard Generated Codes - Numeric Keypad (PCTERM) .................... Keyboard Generated Codes - Editing Keypad with Num Lock Off (PCTERM) . . . .. Keyboard Generated Codes - Editing Keypad with Num Lock On (PCTERM) .. . .. Keyboard Generated Codes - Main Keypad (PCTERM) ....................... 3-15 3-16 3-16 3-16 3-17 3-23 3-25 3-86 3-86 3-87 3-88 4-7 4-10 4-10 5-3 5-3 5-4 5-4 5-5 End of Contents 014-002111 xvii Chapter 1 Introduction This chapter provides a brief introduction to the programming environment of the D217/ D4131D463 line of Data General terminals. This chapter has, the major sections listed below. Terminal Features Enhancements for the D4131D463 Supported Emulations and Modes Summary of On-Line Operations Communications Interface Input Buffer Flow Control The Character Generator 25th Row Support Term-Server Support Information on operating one of these terminals is contained within Installing and Operating Your D216E+, D217, D413, and D463 Display Terminal (014-001767). ) 014-002111 1-1 Terminal Features The 02171D413fD463 terminals provides maximum compatibility with both the OASHERJD200 and the expanded set of 0460 primitives for the interactive applications programmer. Listed below are some of the main programming features: • 25 lines of 80 characters displayed in a 10 x12 dot matrix on the 0217 • 25 lines of 81 characters displayed in a 10 x 12 dot matrix in normal mode on the 04131D463, and 25 lines of 135 characters displayed in a 6 x 12 dot matrix in compressed mode on the 0413/D463 • Bidirectional vertical scrolling on all models • 0200 upward compatibility on all models • UNIX®-friendly protocol mode that simplifies terminfo file specifications on all models • OEC® VT320, VT100, and VT52 emulations on the 04131D463 • PCTERM operating mode of VT100 emulation on all models • Full-screen configuration set-up menus on all models • Smooth vertical scrolling on the 04131D463 • Horizontal scrolling across 207 columns on the D4131D463 • Up to 25 scroll areas, or windows on the D4131D463 • Advanced editing features on the D4131D463 • Protected text on the D4131D463 • Tektronix® 4010 emulation on the 0463 • Extended graphics with the Line, Are, Bar, and Polygon Fill commands on the 0463 • Graphics cursor for graphics input, controllable by keyboard or mouse on the 0463 • Page and field attributes • Double high and dQuble wide rows selectable on all models. 1-2 014-002111 Enhancements for the 0413/0463 The D2171D4131D463 has significant improvements over the previous generation Data General terminals. These improvements allow wider system support and enhanced features: • New diacritical (Spcl) key sequences allow access (using the ALT key) of new characters in the Data General International (DGI) character set on all models • ISO 8859/1.2 Latin-l compliant character set available in both Data General native-mode and VT emulations on all models • Added bell to IBM PC AT style (101 key) keyboard • No downloadable character sets on the D413 • Cmd-Cursor UparrowlDownarrow enables/disables split screen on the D4131D463 and moves the split point up and down • Cmd-Shift-Cursor UparrowlDownarrow moves the active emulation viewing region up and down Supported Emulations and Modes The terminals support the following emulation or operational modes: • Data General native-mode on all models • VT100/VT52 on all models • PCTERM (an operational mode of the VT320/100 emulation, PCTERM is treated as a separate emulation in this manual to avoid confusion within the VT3201100 sections) on all models • VT320 on the D4131D463 • Tektronix 4010 on the D463 014-002111 1-3 Summary of On-Line Operations The terminal consists of two major units: the keyboard and the display unit. The keyboard is an input device that generates ASCII characters that are interpreted by the host computer. The display unit is an output device. It interprets commands from the host to control the screen image. The display unit also serves as a link between the host and any printer attached to the terminal. Input from the keyboard consists of commands and characters. Characters entered at the keyboard for display must be forwarded to the display unit by the host (in full duplex mode only). Commands are either forwarded to the host or are used to invoke special functions in the host software. The display unit, responding to the ASCII display and control characters, is primarily an output device for the host. A few of the ASCII character sequences or commands request status or configuration information from the display unit. In these cases, the display unit also functions as an input device. Communications Interface The terminal uses an asynchronous serial communication interface. The host computer and optional printer are connected to the display unit via serial interfaces. You can select the terminal transmit and receive baud rates, and other serial characteristics, through the Configuration Menu (accessed by simultaneously pressing the Cmd and N/C keys on the 107-key, Data General Proprietary keyboard or rightmost Ctrl and Scroll Lock keys on the 1OI-key IBM PC AT-style keyboard). Even though the bit transmission rate is set with the baud-rate settings, compatibility with Data General operating systems requires that the terminal transmit characters to the host at a maximum rate of 60 characters per second (paced transmissions). The actual transmission rate falls below this when baud rates below 600 are selected. The character transfer rate is menu-selectable so that other systems, such as UNIX, can take advantage of unpaced transmissions. Input Buffer The terminals process all display characters and most commands within the time it takes to receive them (within 2 ms) when the baud rate is 4800 or less. The terminal uses a 256-byte input buffer to accumulate characters the display unit is unable to interpret immediately. The characters are held in the buffer until the terminal is ready to accept them. This commonly occurs when the transmission rate is 9600 baud or higher, or when the tenninal performs smooth-scrolling operations. 1-4 014-002111 Flow Control As the input buffer approaches its capacity, the terminal can automatically issue a Ctrl-S (DC3) to signal the host to stop transmitting characters. A Ctrl-S is sent automatically when the number of characters in the buffer reaches a menu-selected value of 64, 128, or 192. You can also choose in menus not to send any Ctrl-S, regardless of the state of the buffer. If the host does not immediately respond to the Ctrl-S by ceasing the flow of characters, the terminal sends another Ctrl-S after eight more characters have been received, and continues to send a Ctrl-S after each eight characters until either the host responds or the buffer fills. If the buffer fills before the host responds, the terminal sends a Ctrl-S back to the host for every character received. When the input buffer falls to 32 enqueued characters, the terminal sends a Ctrl-Q (DCI) to the host, signaling it to resume transmission. The host should respond before the input buffer empties, to avoid a stuttering effect on the display screen. The Character Generator All terminals are equipped with a 512~haracter Character Generator (CGEN), which resides in terminal ROM. All hard (ROM-resident) character sets in any mode or emulation are composed of a subset of the characters in the CGEN. Listed below are the sets of predefined characters that comprise the CGEN: • U.S. ASCII characters • Foreign language characters (National Replacement Characters) • Word Processing with math, Greek, forms, superscripts and subscripts • PC characters • DEC VT characters • ISO (international) characters • Data General international characters • Japanese Katakana (phonetic) characters • Line drawing characters 014-002111 1-5 25th Row Support All terminals and emulations, except the Tektronix 4010, support a redefineable status line. This means that the status line can be treated as the 25th line on the screen. Thus, when this mode is enabled the screen rows run from 0 through 24, instead of the 0 through 23 range that was standard on previous terminals. Refer to the emulation chapters for additional information on the particular usage of this mode within that emulation. Term-Server Support The Cmd-C3 keystroke combination on 107-key proprietary Data General keyboards (or rightmost Ctrl and End keys on WI-key IBM PC AT-style keyboards) generates a special code (IC hex, 034 octal) that we provided for persons using term-servers. This code can be used to initiate a macro inside the term-server that switches to a new host computer and sends a code to the terminal to change to the appropriate emulation. Allowing the term-server to handle this process keeps the host computer and the emulation mode synchronized. The alternative is having the user manually tell the term-server to change to a new host and then manually change the emulation mode on the terminal. Full details on switching emulations is included within the appropriate emulation chapters. End of Chapter 1-6 014-002111 Chapter 2 Data General Native-Mode This chapter provides the programming information for Data General native-mode operations on the D2171D4131D463 terminals. This chapter has two major sections: Data General Native-Mode Summary of Operations Data General Native-Mode Commands Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and various Data General native-mode reference material are covered in appendices, located at the rear of this manual. 014-002111 2-1 Command Syntax and Code Conventions Throughout this manual, there are certain conventions used whenever Data General nativemode commands are explained or referenced. These conventions are: • Any value enclosed within angle brackets ( < > ) is in octal, except command or location arguments. • Values in the form of <0>, <00>, and are location arguments. These values are always (except in UNIX mode, see Table 2-8) expressed in DG-hex. For more information on conunand arguments (and DG-hex), see "Forming Command Arguments." • Values in the form of are location arguments. These values are always (except in UNIX mode) expressed with ASOI characters from "~' through "_". For more information on location arguments, see ''Forming Location Arguments." • 2-2 Spaces are often included within a command to separate characters for clarity. When entering a conunand, do not enter these spaces. If a space is part of a conunand, it will be written as . 014-002111 Data General Native-Mode Summary of Operations This section summarizes the operations information specific to Data General native-mode. This section does not cover format or usage of Data General native-mode commands, which are covered in "Data General Native-Mode Commands," later in this chapter. This section covers the information listed below: Data General Native-Mode Features Command Syntax and Code Conventions Keyboard Character Generation Fonning Command Arguments Fonning Location Arguments Character Sets Graphics Windows Lead-In Codes UNIX Support Host-Programmable Function Keys Debugging Support Dual Emulation Support Information regarding functions of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and various Data General native-mode reference material are contained within appendices, which are located at the rear ofthis manual. 01~02111 2-3 . .... .' . . ." ' ~ i:l ~ ,. ::»..;.: , . ... Data General Native-Mode Features All terminals provide maximum compatibility with the D200 and the expanded set of D400 . primitives for the interactive applications programmer. Listed below are some of the main programming features of these terminals in Data General native-mode: • 25 lines of 81 characters displayed in a 10 x 12 dot matrix in normal mode • 25 lines of 135 characters displayed in a 6 x 12 dot matrix in compressed mode on the D413iD463 • 25 lines of 80 characters displayed in a 10 x 12 dot matrix on the D217 • D200 upwardly compatible with all models • UNIX-friendly protocol mode that simplifies terminfo file specifications on all models • 25th row can be configured as a status line, an extra screen line, a blank row, or as a host programmable row on all models • Supports both IBM PC AT-style (101 key) and Data General proprietary (107-key) keyboards on all models • IBM PC printer supported in character and graphics modes on all models • IBM PC compatible character set available on all models • ISO 8859/1.2 Latin-1 compliant character set available on all models • Bidirectional vertical smooth scrolling on the D4131D463 • Horizontal scrolling across 207 columns on the D4131D463 • Up to 25 scroll areas, windows, on the D4131D463 • Enhanced editing commands on the D4131D463 • Protected text on the D4131D463 • Split-screen, dual-host mode on the D4131D463 • Hot-key switch between hosts, or between emulations on a single host, on the D4131D463 • Up to 37 sets of up to 94 characters on the D463, for a total of up to 3504 user-defined characters • Extended graphics with the Line, Are, Bar, and Polygon Fill commands on the D463 • Graphics cursor for graphics input, controllable by the keyboard or a mouse, on the D463 • Page and field attributes • Double high and wide rows 2-4 014-002111 Keyboard Character Generation Each time you press a key, data is sent to the tenninal. The tenninal interprets this data as either a local key (such as a Shift key) or as a code generating key (such as the character "A"). If a character code is generated, it is either sent on to the host computer, if in on-line mode, or is taken as direct input by the tenninal, ifin off-line mode. The terminal supports two keyboards, a WI-key keyboard, similar to an IBM-PC AT-style keyboard, and a 107-key Data General standard keyboard. Table 2-1, Table 2-2, Table 2-3, and Table 2-4 show the code generated by each key and recognized keystroke combination on 100-key . and 107-key keyboards. We did not include the code generated by the main keypad because the generated code is simply the code of the character on the face of the key. NOTE: The lO7-key keyboard has a Cmd key that does not appear on the WI-key keyboard. To simulate the Cmd key, use the rightmost Ctrl key on WI-key keyboards. Table 2·1 Keyboard Generated Codes - Function Keys (Data General Native-Mode) 107~ey 014-002111 Keyboard 101-key Keyboard Normal Shift Ctrl Ctrl-Shift F1 F2 F3 F4 F5 FS F7 F8 F9 F10 F11 F12 F13 F14 F15 Print N/C Hold F1 F2 F3 F4 F5 FS F7 F8 F9 F10 F11 or AIt-F1 F12 or Alt-F2 Alt-F3 Alt-F4 Alt-F5 Print Screen Scroll Lock Pause/Break <03S> q <03S> r <03S> s <03S> t <03S> u <03S> v <03S> w <03S> x <03S> y <03S> z <03S> { <03S> I <03S> } <03S> <03S> p Local function Local function Local function <03S> a <03S> b <03S> c <03S> d <036> e <036> f <036> 9 <036> h <036> i <036> j <03S> k <03S> I <036> m <036> n <036> ' none none none <03S> 1 <03S> 2 <03S> 3 <03S> 4 <03S> 5 <03S> S <03S> 7 <03S> 8 <03S> 9 <03S> : <03S> ; <03S> < <03S> = <03S> > <03S> 0 none none none <03S> ! <03S> .. <03S> # <03S> $ <03S> % <03S> & <03S> ' <03S> ( <03S> ) <03S> * <03S> + <03S> , <03S><03S> . <03S> none none none 2-5 Table 2·2 Keyboard Generated Codes 107-tey Keyboard 101-tey Keyboard Normal Shift Erase Page C1 C2 Erase EOl C3 C4 Print Cmd-Print Insert Home Page Up Delete End Page Down Print Screen R.Ctrl-Print Screen <014> <036> \ <036> 1 <013> <036> A <036> none <036><021> <014> <036> X <036> Y <013> <036> Z <036> [ none <036><001> Table 2·3 Keyboard Generated Codes 107-tey Keyboard Uparrow Rightarrow leftarrow Downarrow Home 2-6 Editing Keypad (Data General Native-Mode) 101-tey Keyboard Uparrow Rightarrow leftarrow Downarrow nla UNIX Mode Normal Shift <036> PH <036> \ <036> 1 <036> PE <036> A <036> none <036>PO <036> PH <036> X <036> Y <036> PE <036> Z <036> [ none <036>P1 Cursor Keypad (Data General Native-Mode) Normal <027> <030> <031> <032> <010> Shift <036><027> <036><030> <036><031> <036><032> <036><010> UNIX Mode Normal Shift <036>PA <036>PC <036>PD <036>PB <036>PF <036>Pa <036>Pc <036>Pd <036>Pb <036>Pf 014-002111 Table 2·4 Keyboard Generated Codes - Numeric Keypad (Data General Native-Mode) 107-key Keyboard1 101-key Keyboard Mapping with Num Lock On On Numlock On I * / * / * - (minus) , (comma) . (period) -+ , 1 2 3 4 .IDelete Ollnsert 1/End 21Downarrow 3/Pg On 4/leftarrow 1 2 3 4 5 5 5 0 6 7 a 9 New Line 1 2 101-key Keyboard 6/Rightarrow 7/Home a/Uparrow 9/Pg Up Enter 0 6 7 a 9 New Line 101-key Keyboard Mapping with Num Lock 002 Off / * , Erase EOl Erase Page C3 Downarrow C4 leftarrow Home Rightarrow C1 Uparrow C2 New Line 107-keyboard numeric keypads have no Num Lock OnIOff mode. Editing keys on the 107-key keyboard are mapped onto the numeric keypad on 101-key keyboards when Num Lock is Off. See Table 2-2 and Table 2-3 and for generated codes. Forming Command Arguments Command arguments, are ASCII characters. The majority of arguments in Data General native-mode commands are composed of either one, two, or three bytes. Each of these arguments are represented respectively by "n", "nn", or "nnn". In command listings, the arguments are always enclosed by angle brackets ( < > ). However, these brackets simply separate the command argument from the surrounding characters. The brackets do not mean that the command arguments are in octal. Command arguments are expressed as a version (known hereafter as DO-hex) of standard hex that replaces"N' with ":","B" with ";", "C" with "<", "D" with "=", "E" with ">", and replaces"F' with "?". For example, in standard hex, the deci~al value "15" is expressed as "F'. However, in DO-hex, the decimal value "15" is expressed as "1". CAUTION: UNIX mode does not use DG-hex to express command arguments. For the format of command arguments in UNIX mode, see the section "UNIX Support," later in this chapter. 01~02111 2-7 .. ~ ... " ~ :;:..,. " When command arguments are received by the terminal, the four least significant bits of each byte are concatenated. Thus, an value has four bits; an value has eight bits; and an value has twelve bits. The next section "Recovering a Decimal Value from DO-Hex," has more details on this concatenation process. Actually forming command arguments is a simple matter of expressing a decimal value in DO-hex. Table 2-5 shows how to change decimal values into DO-hex. Table 2-5 Command Argument Translation (Decimal to DG-Hex) Argument Forms and Decimal Values ASCII Characters Oto? 0 1 2 3 4 5 6 7 8 9 , < = > ? n> 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Examples For = 12 1st n = "<" from table = < (OG-hex) For = 135 = 128 + 7 1st n = 128 = "8" 2ndn = 7 ="7" = 87 (OG-hex) For = 3888 =3840 + 48 1st n =3840 ="?" 2nd n =48 ="3" 3rd n =0 = "0" =?30 (OG-hex) The largest possible decimal value for is 4095. Every value from 0 to 4095 can be expressed as the sum of values that occur in the table, specifically, one value from each of the three columns. However, the decimal value does not determine the form of the argument. Rather, the form of the argument (n, nn, or nnn) determines the range. For example, is always a single byte; is always two bytes; and is always three bytes. To express a decimal value in DO-hex, follow these steps. 1. Express the decimal value as the sum of up to three values, one from each column, in the table. An uses only the rightmost column. An uses that column and the center one. An uses all three columns. Locate the value in the table that is closest to, but not greater than, the decimal value you want to translate. Subtract the closest value from the original value. Take that difference and find the closest value, but not greater, to it in the table. Continue until you have expressed the original decimal value as the sum of three values from the table. 2-8 014-002111 2. Locate each of the values found in the table and determine what ASCII character represents that value. Once you have determined the appropriate ASCII character for each column, string them together as shown in Table 2-5. The resulting code is in DG-hex. Recovering a Decimal Value from DG-hex Some commands return parameter data to the host. In most cases, this data is in DG-hex form and will ned to be converted back. to decimal for application use. For the , , and argument forms, only the lower four bits of each argument byte are used. The lower four bits, known as Least Significant Bits or LSBs, of each argument byte are concatenated together to form a 4-bit value for , an 8-bit value for , and a 12-bit value for . Figure 2-1 shows how the argument bytes ( 8--bit ASCII characters) are evaluated. to interpret "n" format take the LSBs from one ASCII character to form a 4-bit value which can range from 0 to 15 (Decimal) AAAA=n to interpret "nn" format AAAAAAAA BBBBBBBB '----~~---. take the LSBs from two ASCII characters to form an &-bIt value which can range from 0 to 255 (Decimal) AAAABBBB = nn to Interpret "nnn" format AAAAAAAA BBBBBBBB CCCCCCCC take the LSBs from three ASCII characters to form a 12-bit value which can range from 0 to 4095 (Decimal) '--"-___3._~___3._~___ AAAABBBBCCCC = nnn Figure 2-1 Combining LSBs to Create Decimal Values from DG-hex 014-002111 2-9 Forming Location Arguments Location arguments are used to specifY x- and y-ordinates for graphics commands in Data General native-mode (not, however, in UNIX mode). They are always in the form of , where NNN is three ASCII characters from "@"through "_". In commands, the NNN values are enclosed within angle brackets. These brackets are only used in this manual to clearly separate the location argument from the surrounding codes; the brackets do not mean that location arguments are in octal. Forming location arguments is similar to forming command arguments. In both cases, you must express a decimal value as a value containing ASCII characters. CAUTION: Location arguments in UNIX mode have a different format. Refer to the "UNIX Support" section later in this chapter for details on how UNIX mode uses location arguments. Location arguments, which always have three bytes, are treated differently than command arguments by the terminal when they are transmitted. Each byte (8-bits) of the argument is truncated by the terminal into a 5-bit quantity by removing the three most significant bits of each byte. Then the remaining three 5-bit quantities are concatenated into a 15-bit value (rather than the 12-bit value in command arguments). For more information on how this concatenation occurs, see the next section "Generating a Decimal Value From Location Arguments." Forming location arguments is similar to forming command arguments. In both cases, you must express a decimal value (ranging from 0 through 3071) as a value containing one or more ASCII characters. Table 2-6 helps you transform decimal values into a form containing ASCII characters. 2-10 014-002111 Table 2·6 Location Argument Translation Table (Decimal into ASCII Characters) Argument Forms and Decimal Values ASCII Characters @to_ @ A B N 0 1024 2048 C 0 E F G H I J K L M N 0 p Q R S T U V W X Y Z [ \ ] A - not used N 0 32 64 96 128 160 192 224 256 288 320 352 384 416 448 480 512 544 576 608 640 672 704 736 768 800 832 864 896 928 960 992 N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Examples For = 455 =0+448+7 =@NG For = 1420 = 1024 + 384 + 12 = ALL The largest possible decimal value for is 3071. Every value from 0 through 3071 can be expressed as the sum of values that occur in the table, specifically, one value from each of the three columns. Remember, location arguments always have three bytes. 014-002111 2-11 . . ' ";:;:. . § ~ To express a location argument decimal value into a form containing ASCII characters, follow these steps: 1. Express the decimal value as the sum of three values, one from each column, in the table. Locate the value in the table that is closest to, but not greater than, the decimal value you want to translate. Then subtract the closest value from the original value. Now take that difference and find the closest value, but not greater, to it in the table. Continue until you have expressed the original decimal value as the sum of three values from the table. 2. Locate each of the values found in the table and determine what ASCII character represents that value. Once you have determined the appropriate ASCII character for each column, string them together as shown in Table 2-6. Recovering a Decimal Value From Location Arguments . For location arguments, the terminal sends 15-bits to the host. This 15-bit quantity is interpreted by concatenating the five least significant bits from each of the three bytes that comprise the argument. Figure 2-1 shows how the argument bytes ( B-bit ASCII characters) are evaluated. location arguments are always in the format C___s:.~_~\.____.. AAAAAAM BBBBBBBB CCCCCCCC take the 5 LSBs from three ASCII characters to form a 15-bit value AAMABBBBBCCCCC =NNN Figure 2-2 Combining LSBs to Create Decimal Values for Location Arguments As is the case with command arguments, location arguments are also translated into a form containing only ASCII characters. Location arguments use the ASCII characters from "@" to "_" to express the I5-bit decimal value that results from concatenating the five LSBs of three bytes. Table 2-6 shows the translation values for location arguments. 2-12 014-002111 Character Sets All terminals are equipped with a 512-character Character Generator (CGEN), which is located within terminal ROM. All hard (ROM-resident) character sets are composed of characters contained within the CGEN. In addition to the predefmed hard character sets, the 0463 supports up to 37 soft character sets (each containing up to 94 characters), which reside in volatile RAM, that are composed of custom characters. Soft character sets store characters within the Dynamically Reconfigurable Character Buffer (DRCB), which contains up to 3504 soft characters. Hard Character Sets Hard character sets are composed of characters located within the CGEN. Two character sets may be selected for use at one time. They are designated as GO (primary) and G1 (secondary). Table 2-7 shows all of the 7-bit and 8-bit character sets available in Data General native-mode. Table 2-7 Character Sets Available In Data General Native-Mode Keyboard language VT Multinational (supplemental set) U.S. ASCII VT Special Graphics (line drawing) NRC United Kingdom Low PC Term (0 hex - 7F hex) NRC French High PC Term (80 hex - FF hex) NRC German ISO 8859/1.2 characters NRC Swedish/Finnish DRCB Character Set 1 NRC Spanish NRC o ani shINorwegian NRC Swiss NRC Kata Kana (GO) - • • D463 • DRCB Character Set 38 - Data General International Kata Kana (G 1) Word Processing, Greek, Math Line drawing Data General Special Graphics (PC characters) 014-{)02111 2-13 GL is used for 7-bit characters (20 hex through 7E hex). The GL character set is generally used with 7-bit sets such as U.S. ASCII or an appropriate National Replacement Character (NRC) set. The NRC sets are language-specific character sets that remap the least used characters from the ASCII set with those characters frequently used within each language. GL can point to GO or Gl. The GR set is used for 8-bit character codes, which are characters AO hex through FF hex. GR generally contains special graphics sets such as Data General International. GR is hard-wired to G1. Powerup Character Sets During powerup or reset, the terminal initializes the character sets with the default primary (GO) and secondary (Gl) character sets. If the terminal is operating in 7-bit mode, the GO set is the NRC set and the G 1 set is the word processing set. If the terminal is operating in 8-bit mode, the GO set is the U.S. ASCII set and the G 1 set is the Data General International Set. Designating Character Sets Any two of the character sets listed in Table 2-7 may be designated as GO and G1. The two sets chosen are then designated as either GL or GR. GR is always G1. GL can be either GO or Gl. When operating in 7-bit mode, you must send a Shift Out command to the terminal in order to switch GL from GO to G1. All subsequent characters in GL are selected from G1. In order to return to GO, you must send a Shift In command to the terminal. When operating in 8-bit mode, G1 is accessed directly by characters in the range AO hex through FF hex. The Shift. In and Shift Out commands select which character set is to be designated GL (used for characters in the range 20 hex through 7E). Figure 2-3 illustrates which sets can be designated GLorGR. Sets currently in use Active character. sets GL GR 7-bit characters (20 to 7E hex) GO '-----.,..----1 8-bit characters (AO to FF hex) G1 Figure 2-3 Designating Character Sets as GL and GR (Data General Native-Mode) 2-14 014-002111 Soft Character Sets (0463 only) CAUTION: Soft character bit patterns in UNIX mode have adiffemet format. Refer to the Unix Support section for a description of how UNIX mode uses bit patterns. Soft character sets, which contain custom characters, must be defined by the user before they can be used. Creating custom characters and generating character graphics are both functions of the Dynamically Reconfigurable Character Buffer (DRCB). This buffer, which contains up to 3504 characters, is the industry-standard term for the Down Line Loadable buffer (DLL) used in Data General terminals, such as the D450 and D460. The D463 terminal has up to 37 soft character sets, each of 94 characters. The characters are in the range from 21 hex through 7E hex. Custom character definitions are valid until the terminal is turned off or reset, or until the characters are redefined or deallocated. Save your custom character definitions on your host system so they can be easily transferred to the terminal, as needed. The first step in defining one or more custom characters is to select a DRCB set number using the Select Character Set command. The DRCB set number identifies the character set to contain the custom characters. DRCB sets defined in this way can be designated as the GO or G1 set, or as both. The D463 uses DRCB set numbers from 20 hex through. 45 hex. Although this range of values is 38 decimal character sets, there is only enough RAM for 37 sets to be in use at one time. Once you have selected the character set number, you must define the dot patterns for the characters with the Derme Character command. Each character defined fits within a character cell that measures 10 by 12. The cell has 12 scan rows, each of which has 10 dots (columns) per row. Each character cell is a matrix of 120 dots, arranged in 12 horizontal rows by 10 vertical columns (under normal, noncompressed, spacing only). The Define Character command encodes the dot pattern of only one character cell. You must repeat the command for each character defined. 014-{)02111 2-15 Defining Soft Characters . CAUTION: Soft character bit patterns in Unix mode have a different format. Refer to the "Unix Support" section later in this chapter for details on how Unix mode uses bit patterns. Soft characters are defined by the Define Character command. This command contains up to twelve pairs, each representing the bit pattern of a character cell row. Each pair, which is a 10-bit quantity, is formed by concatenating the five least significant bits from each of two ASCII bytes. If you are defining a compressed character (character cell size of 6 by 12), only the six most significant bits of the 10-bit quantity are used. Figure 2-4 shows how the
pair is created. First ASCII character 76543210 " 76543210 Second ASCII character 9 8 7 6 5 432 1 0 pair (10 bit) formed by concatenating the five LSBs of two ASCII characters Figure 2-4 Defining a Soft Character Cell Row Each pair specifies the bit pattern of each character cell row. In each row, the "1's" in the
pair turns screen pixels on and the "O's" turn screen pixels off. For example, the 1O-bit value «dd> pair) 0100000001 turns on the second and last pixel in a character cell row. Figure 2-5 shows how the twelve pairs defme a DRCB character, where each "d" value is a 5-bit binary quantity. pair (10 bit) formed by concatenating the five LSBs of two ASCII characters 9 876 5 4 3 2 1 0 Row 0 Row 1 Row 2 • • • • • • • • • Row 11 Figure 2-5 Combining
Pairs to Specify a Soft Character The
pairs are sent to the host in a stream in the order: "dO, d1, ... , d23." Remember, before a DRCB character may be defined, a DRCB character set must be selected as the current (active) character set. 2-16 014-002111 Graphics The DRCB provides the D463 user with character-graphics commands. In this case, the firmware defines DRCB characters to form the graphic image specified by a given graphics command. The D463 terminal creates graphics displays by combining line segments, arcs, filled polygons, and bars (filled in rectangles) into a composite screen image. The screen image is formed using DRCB characters defined by drawing algorithms within the terminal.When graphics images are no longer needed on the screen, the DRCB characters used to create them are automatically released and made available for custom characters (described in the previous section). Character graphics commands supported by the D463 are listed below: • Deallocate Character Sets - Lets the user free allocated DRCB character sets that were reserved by the Define Character command. • Bar - Draws solid rectangles of any size, provided they fit entirely within the current window. • Line - Draws lines from point to point within the current window. • Arc - Draws arc with a specified radius, start angle, and end angle. • Polygon Fill- Draws a filled polygon within the current window. • Set Pattern - Defines the line style used in generating lines. • Read Characters Remaining - Queries the terminal for a count of the DRCB characters remaining (but reports a maximum of only 1023 characters, even though more may remain). The Graphics Coordinate System The Line, Bar, Arc, and Polygon Fill commands are based upon an (x,y) coordinate system, where each point within the graphics coordinate system can be uniquely described by the combination of a horizontal component (the x ordinate) and a vertical component (the y ordinate). The x-axis is defined by the bottom of the current window. The y-axis is defined by the left margin of the current window. The drawing origin (where x=O and y=O) is, therefore, defined by the intersection of the left margin and the bottom of the last row in the current window. Along the x-axis there are 10 x-ordinate units for each of the 81 columns, for a total of 810 units (or 2070 units for 207 columns). Along the y-axis, there are 24 y-ordinate units for each of the 24 rows, for a total of 576 units. Ifhowever, you define the status line as the 25th screen row, then there are a total of 600 units. These dimensions are derived from the 10 by 12 dot matrix in each character cell; one unit in the x-direction for each dot column (10), and two units in the y-direction for each scan row (12). Figure 2-6 shows the margins and boundary values for the graphics coordinate system at power up or after reset. The margins and boundaries of the current window limit the available drawing area for character graphics commands. 014-002111 2-17 (799,575) Yaxis (24 rows) (0,0) drawing origin X axis (80 columns) (799,0) Figure 2-6 The Graphics Coordinate System at Power Up or Reset The largest possible drawing area consists of the entire display-screen memory, with 24 rows and 207 columns. In this case, the x-ordinate can range from 0 to 2,069; the y-ordinate can range from 0 to 575. The smallest possible drawing area is one character cell (one row by one column). In this case, the x-ordinate can range from 0 to 9 and the y-ordinate can range from 0 to 23. NOTE:· If the arguments to the Line or Bar commands specify a location or dimension that extends out of the current drawing area, the command immediately aborts. Graphics Cursor The graphics cursor, which is available only on the D463, is used to indicate specific points (coordinates) on the screen by controlling the specified input device. This lets the user identify screen locations easily. The graphics cursor commands are similar to the G300 graphics cursor commands. The D463 does not support a blinking cursor (unlike the G300) and only supports a long crosshair cursor-type. Also, the format of data returned in response to a cursor command is different from the G300. NOTE: The graphics cursor disappears during both vertical and horizontal scrolling. After the scrolling operation is complete, the cursor will reappear in the same location. The Read Graphics Cursor command gives you the coordinates of the graphics cursor. Graphics Cursor On and Graphics Cursor Off cause the cursor to appear and disappear from the screen respectively. The Cursor Location command lets you move the graphics cursor to any position on the screen. Cursor Track lets you select what input device will control the graphics cursor. The Cursor Reset command sets the graphics cursor attributes to "off" and "no" tracking. 2-18 014-002111 Windows· The D4131D463 tenninals provide for up to 24 (25 if 25th Line Mode is set) scroll areas, called windows. Windows may have from 1 to a maximum of25 screen rows. No overlap is permitted. A window does not provide extended or oft'-screen memory in the vertical direction. That is, as text in a window is vertically scrolled up or down, lines at the top or bottom of the window are lost. A window row, however, can contain more than the usual 81 visible columns; a window can be horizontally scrolled over 207 columns. The additional columns are stored within terminal memory. A new feature of these terminals is an addressable status line. The 25th line of the screen can be blanked, used as an extra screen row, or reserved for the status line. The Set 25th Line Mode command controls the functions of the 25th line on the screen. Each window is essentially a miniature DASHER D2ID200 screen. D2 commands work within and relative to the current window. This terminal, however, can display up to 81 columns on a screen row. NOTE: To provide DASHER D2ID200 display compatibility, this terminal initializes the screen to consist of one window with 24 rows of 80 columns. Since all D2ID200 commands work relative to the current window, full compatibility is retained. Lead-In Codes Command sequences in Data General native-mode are composed of one or more ASCII characters. Commands composed of at least two characters always begin with 036 octal (IE hex), which is the 2-character command lead-in code. The remaining characters in the command are always printable ASCII characters from 041 octal (21 hex) through 176 octal (7E hex). Invalid command sequences are ignored. For example, function-key sequences (all of which also begin with 036 octal) are not valid command sequences and are ignored if they are received by the terminal. 014-002111 2-19 UNIX Support All terminals have a UNIX. mode which remaps troublesome Data General native-mode commands and keyboard codes to allow easier creation of UNIX. terminfo files. This mode is entered and exited via the UNIX. Mode command or the Configuration Menu. For information on using the Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. Remapped keys that transmit inbound (terminal to host) codes are shown in Table 2-8. Table 2·8 Remapped Key Codes for UNIX Support Key DG Native-mode (octal) UNIX Mode (octal) UNIX Mode (ASCII) Erase Page <014> <036><120><110> <036>PH Cmd-Print <036><021> <036><120><060> <036>PO Shift Cmd-Print <036><001> <036><120><061> <036>P1 EraseEOL <013> <036><120><105> <036>PE Uparrow <027> <036><120><101> <036>PA Rightarrow <030> <036><120><103> <036>PC Leftarrow <031> <036><120><104> <036>PD Downarrow <032> <036><120><102> <036>PB Home <010> <036><120><106> <036>PF Another change to support UNIX systems involves altered outbound (host to terminal) as well as inbound codes. In UNIX Mode, all Data General native-mode commands accept ASCII coded hex parameters ("0" through "9", "A" through "F', and "a" through "f'), instead of the Data General standard ASCII coded binary parameters and commands that return date will send hex data in upper case. These parameters are encoded as shown in Table 2-9. 2-20 014-002111 Table 2-9 Altered Outbound Codes for UNIX Support Data General Native-Mode Unix Mode1 Bits 4 5 8
10 12 15 16 1 Range othrough 15 othrough 31 o through 255 othrough 1023 othrough 4095 o through 32767 o through 65535 H indicates a hex digit. Certain Data General native-mode commands have different structures and codes in UNIX Mode. These changes, shown in Table 2-10, make the remapped keys (see Table 2-8) work in local mode and make some of the terminal descriptions easier. Table 2-10 Altered Data General Native-Mode Commands for UNIX Support UNIX Mode (ASCII) Command Native-Mode (octal) UNIX Mode (octal) Print Window <021> <036><106><077><071> <036>F?9 Cursor Up <027> <036><120><101> <036>PA Cursor Down <032> <036><120><102> <036>PB Cursor Right <030> <036><120><103> <036>PC Cursor Left <031> <036><120><104> <036>PD Erase Field <013> <036><120><105> <036>PE Window Home <010> <036><120><106> <036>PF Roll Disable <023> <036><120><107> <036>PG Erase Window <014> <036><120><110> <036>PH Blink On <016> <036><120><111> <036>PI Blink Off <017> <036><120><112> <036>PJ 014-002111 2-21 Also, in UNIX Mode the control characters shown in Table 2-11 have altered meanings. Table 2-11 Control Codes Altered for UNIX Support Control Code (octal) Command or Function <005> Ignored (Read Cursor Address uses binary codes) <010> Backspace (does not wrap on left margin) <011> Tab (fixed eight-eolumn tab settings) <012> Line Feed (go to next line in same column) <013> Ignored <014> Ignored <016> Shift Out (still available with <036>N) <017> Shift In (still available with <036>0) <021> XON - restarts terminal transmission <023> XOFF - stops terminal transmission (with limited transmit only) <027> Ignored <030> Ignored <031> Ignored <032> Ignored Host-Programmable Function Keys Data General native-mode supports host-programmable function keys with the Programmable Function Keys command and through the Configuration Menu (only on 041310463). For information on using the Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. The Programmable Function Keys command allows one or more of the 60 predefined function key codes to be reprogrammed with user~efined sequences. Programmed function keys share 255 bytes of volatile (RAM) memory space. This memory can be allocated entirely to one key if desired. Keys that do not have a user definition send the default Data General sequences. 2-22 014-002111 Debugging Support To aid in debugging operations, all terminals have a command called Data Trap Mode. This command lets the user view data from the host as a hex data-stream, similar to the AOSNS X DISPLAY command. This command can be entered either on-line or off-line. Data Trap Mode has two operating states. One of them displays hex values and the other displays octal values. Full data on the use of this command is in the section "Debugging Commands," later in this chapter. Dual Emulation Support The D413ID463 terminals can freely switch between two emulations. The manual Installing and Operating the D216E+ / D413 / D463 Display Terminals (014-001767) contains full information on this feature. Two commands that support dual emulations in Data General native-mode are Set Split Screen Mode and Hot Key Switch. The Set Split Screen Mode command lets you display portions of both emulations on the screen at one time. The Hot Key Switch command lets the user change from one emulation to the other. End of Section 014-002111 2·23 2-24 014-002111 Data General Native-Mode Commands This section describes the format and usage of Data General native-mode commands. This section does not explain conventions and practices of Data General native-mode operations, which are covered in the section "Data General Native-Mode Summary of Operations." The commands within this section are organized into the functional areas listed below: Character Set Commands Character Attribute Commands Relative Cursor-Positioning Commands Margins Commands Screen Management Commands Scrolling Commands Editing Commands Programmable Function Key Commands Reporting Commands Dual-Emulation Support Commands Miscellaneous Commands Drawing Commands Graphics Cursor Commands Printer Commands Diagnostic Commands Debugging Commands Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and various Data General native-mode reference material is covered in appendices. 014-002111 2-25 Format of Command Listings in this Section Command name ~ Applicable terminals Scroll Left Command format (do not include spaces.? 0413/0463 ~ IE 46 43 <036> <106> <103> <036> F C (octal) (hex) (ASCII) where Description of command arguments, if any ~ is an pair that sets the number of columns to move text left, as an incremental value from the current offset (for !!lore information on pairs, see "Forming Command Arguments"). Scrolls text in the current window to the left for the number of columns specified. The cursor remains in the same position. If the scroll would exceed physical page boundaries, the window will Usage, results, and constraints of command bump the right page limit. Because every D4131D463 page is 207 columns wide, the maximum column offset is 126 (207-81). The Scroll Left command is used explicitly to force text to move horizontally within the window. Normal cursor movement beyond the visible portion of the screen can also cause horizontal scrolling. Command Syntax and Code Conventions Throughout this manual, there are certain conventions used whenever Data General native-mode commands are explained or referenced. These conventions are: Any value enclosed within angle brackets ( < > ) is in octal, except command or location arguments. Values in the form of , , and are command arguments. These values are expressed in DG-hex (except in UNIX mode). For more information on command arguments (and DG-hex), see "Forming Command Arguments." Values in the form of are location arguments. These values are always expressed with ASCII characters from "@"through "_" (except in UNIX mode). For more information on location arguments, see "Forming Location Arguments." Spaces are often included within a command to separate characters for clarity. When entering a command, do not enter these spaces. If a space is part of a command, it will be written as . 2-26 01~2111 Character Set Commands Not all ofthese character sets and commands are available on all terminals. Refer to the section "Character Sets" to get more details on character sets and their usage. all terminals Select Character Set <036> <106> <123> 1E 46 53 <036> F S (octal) (hex) (ASCII) where sets the character set that is being selected. The list below shows an possible character sets, which are in hex. See the "Forming Command Arguments" section for more information on pairs. 00 ~yboardlanguage 01 U.S. ASCII (NRC North American) 02 NRC United Kingdom 03 NRC French 04 NRC German 05 NRC SwedishlFinnish 06 NRC Spanish 07 NRC DanishINorwegian 08 NRC Swiss 09 NRC Kata Kana (GO) OE DG International character set OF Kata Kana (Gl) 11 Line drawing 13 DG Special Graphics (PC characters) 14 VT Multinational 15 VT Special Graphics (line drawing) ID Low PC Term (0-127) IE High PC Term (128-255) IF ISO 8859/1.2 characters 20 DLL Character Set 1 21 DLL Character Set 2 22 DLL Character Set 3 23 DLL Character Set 4 through 45 DLL Character Set 38 10 Word Processing, Greek, Math This command selects the display character set for either the primary or secondary translation set (GO or Gl). Each character set consists of 94 characters in the range of 041 octal through 176 octal (or 241 octal through 376 octal for the secondary character set in 8 hit mode). 014-002111 2-27 To select a character set as the primary translation set (GO), the terminal must be in the shift.-out state. Conversely, to select a character set as the secondary translation set (G1), the terminal must be in the shift-in state. Shift Out <036> <116> 1E 4E <036> N all terminals (octal) (hex) (ASCII) Changes to the terminal's alternate character set. This command allows access to the secondary character set with characters in the range of 041 octal through 176 octal. Shift In <036> <117> 1E 4F <036> 0 all terminals (octal) (hex) (ASCII) Changes to the terminal's main character set. This command allows access to the primary character set with characters in the range of 041 octal through 176 octal. Deallocate Character Sets <036> <106> <161> 1E 46 71 <036> F q 0463 (octal) (hex) (ASCII) where the first pair sets the starting point of the range (from 00 hex to 25 hex) of character sets to deallocate. the second pair sets the ending point of the range (from 00 hex to 25 hex) of character sets to deallocate. See the "Forming Command Arguments" section for more information on pairs. Lets the host return any or all of the defined character sets to the pool of free characters. This command scans a range of character set numbers and removes any of the included character sets from memory. The parameters are the character set hex codes (20 hex to 45 hex) minus 20 hex because you can deallocate only Dynamically Reconfigurable Character Buffer (DRCB) sets. For example, <036>FqOOO? deallocates any used sets from 20 hex through 2F hex. 2-28 014-002111 Define Character <036> <106> <122>
..
1E 46 52
..
<036> F R
..
D463 (octal) (hex) (ASCII) where is the character to define. It is in the range from 041 octal to 176 octal.
(twelve pairs) are the bit values of the rows of the character cell. Each bit represents one dot in the row of the cell. Each bit that is set represents a lighted dot on the screen. Allows you to defme your own characters. The definition consists of a character to redefine and twelve
pairs. Before a Dynamically Reconfigurable Character Buffer (DRCB) or soft character can be defined, a DRCB character set must be selected as the current (active) character set. The "Character Sets" section of this chapter has details of the process for defining soft characters. Reserve Character <036> <106> <145> 1E 46 65 <036> F e D463 (octal) (hex) (ASCII) where the first denotes the starting Dynamically Reconfigurable Character Buffer (DRCB ) set (decimal value from 0 to 15). 0 decimal maps to DRCB set 20 hex and 15 decimal maps to DRCB set 2F hex. the second denotes the number of contiguous sets (decimal values from 1 to 15). For more information on values, see the "Forming Command Arguments" section of this chapter. Deallocates DRCB character sets that were reserved by the Define Character command. The Reserve Character command can be issued prior to executing any of the drawing commands. It is no longer necessary to allocate characters for drawing. 014-002111 2-29 0463 Read Characters Remaining <036> <106> <144> IE 46 64 <036> F d (octal) (hex) (ASCII) In response to this command, the terminal sends back the following five character sequence: <036> <157> <071> IE 6F 39 <036> a 9 (octal) (hex) (ASCII) where is the upper 5 bits of a 10-bit count is the lower 5 bits of 10-bit count Both of these parameters, when strung together, are similar to the
pair used in the Define Character command. See the "Defining Soft Characters" section for more information on
pairs. NOTE: The count is returned to the user in the form of a base 32 numbering system where the ASCII characters "@", "N' through "0" and "_" represent the 32 digits. Ifmore than 1023 characters remain, the terminal will respond with 1023. Returns a count of the remaining characters (from the terminal to the host) that can be used to create a drawing or to allocate to character sets (the free list). If the user runs out of allocated characters, the terminal will cease processing the drawing commands. 2-30 014-002111 Character Attribute Commands 0413/0463 Change Attributes <036> <106> <116> lE 46 4E <036> F N (octal) (hex) (ASCII) where the first group is the number of characters to change, starting at the cursor position. If you try to change characters past the end of the window, the command executes to the end of the window and then terminate. the first value is the attributes-to-set parameter. There are four attributes, each represented by a single bit: bit bit bit bit 3 2 1 o Dim Reverse video Underscore Blink the last is the attributes-to-reset parameter. If the same attribute is set in both the set and the reset, the attribute will be toggled. If the same bit in both the set parameter and the reset parameter is 0, the attribute will be left unchanged. For more information on and values, see the "Forming Command Arguments" section of this chapter. Sets, resets, or toggles visual attributes (dim, reverse video, underscore, and blink) of characters between the margins. It starts with the character at the cursor position and continues until the character count supplied is exhausted, wrapping to the next line ifit encounters the right margin. However, this command executes within only the current window. NOTE: The display attributes of protected text may be altered by this command since protection is not associated with a display attribute. 014-002111 2-31 DimOn all terminals 1C (octal) (hex) Ctrl-\ (ASCII) <034> Turns on the dim attribute for each subsequent character received by the terminal. all terminals Dim Off 1D (octal) (hex) Ctrl-] (ASCII) <035> Turns off the dim attribute for each subsequent character received by the terminal. all terminals Blink On <016> OE (octal) (hex) Ctrl-N (ASCII) Turns on the blink attribute for each subsequent character received by the terminal. See the Blink Enable command. all terminals Blink Off <017> OF (octal) (hex) Ctrl-Q (ASCII) Turns off the blink attribute for each subsequent character received by the terminal. all terminals Blink Enable <003> 03 (octal) (hex) Ctrl-C (ASCII) Allows blinking of characters which have the blink attribute turned on. 2-32 014-002111 Blink Disable all terminals (octal) <004> 04 (hex) Ctrl-D (ASCII) Disables character blinking regardless of the state of the blink attributes assigned to displayed characters. Underscore On all terminals (octal) <024> 14 (hex) Ctrl-T (ASCII) Turns on the underscore attribute for each subsequent character received by the terminal. Underscore Off all terminals <025> (octal) 15 Ctrl-U (hex) (ASCII) Turns off the underscore attribute for each subsequent character received by the terminal. Reverse Video On <036> <104> or 1E 44 or <036> D or all terminals <026> (octal) 16 Ctrl-V (hex) (ASCII) Turns on the reverse video attribute for each subsequent character received by the terminal. Reverse Video Off <036> <105> or 1E 45 <036> E or or all terminals <002> 02 Ctrl-B (octal) (hex) (ASCII) Turns off the reverse video attribute for each subsequent character received by the terminal. ) 014-002111 2-33 0413/0463 Protect On <036> <106> <114> 1E 46 4C <036> F L (octal) (hex) (ASCII) Sets the protect attribute for all subsequent characters that are received by the terminal. If protect mode is disabled, the characters will have the attribute set, but will not be protected until protect is enabled. 0413/0463 Protect Off <036> <106> <115> 1E 46 4D <036> F M (octal) (hex) (ASCII) Resets the protect attribute for each subsequent character that is received by the terminal. 0413/0463 Protect Enable <036> <106> <126> 1E 46 56 <036> F v (octal) (hex) (ASCII) Enables all protected text so that the protected text cannot be changed with normal cursor-related commands. Protected text can be deleted only with an Erase Screen or Erase Window command. 0413/0463 Protect Oisable <036> <106> <127> 1E 46 57 <036> F W (octal) (hex) (ASCII) Allows the modification of protected text that is on the screen. Once the protect attribute is disabled, any command can modify the text. 2-34 014-002111 0413/0463 Oouble High/Oouble Wide <036> <122> <105> 1E 52 45 <036> R E (octal) (hex) (ASCII) Where the value is one of the following row attributes parameters: o 1 2 3 4 5 NonnalRow Double Wide Double High Top Double High Bottom Double High ToplDouble Wide Double High BottomIDouble Wide Selects double high and double wide screen row attributes. Double High Top selects one character row as the top half of the line. Double High Bottom is used to select the next lower character row as the bottom half of the line. Both rows should contain the same characters to fonn a complete display. 0413/0463 Field Attributes <036> <122> <103> IE 52 43 <036> R C (octal) (hex) (ASCII) Where: The value is a pair that represents the field attribute to set and the value is a pair that represents the field attribute to reset. There are four attributes, each represented by a single bit: bit bit bit bit bit 4 3 2 1 0 Blank (invisible) Dim Reverse video Underscore Blink For more information on pairs, see the "Forming Command Arguments" section of this chapter. NOTE: lfthe same bit is set in both and , then that bit will toggle. lfthe same bit in and is set to 0 that bit will not change. Replaces the character at the cursor location with a field attribute marker. To remove a marker, position the cursor on the marker and type any character. The Field Attribute setting changes 014-Q02111 2-35 when the next Field Attribute, End of Line, or Page is encountered in the display screen. The character, field, and page attribute settings determine the displayed attribute by exclusive OR as shown in the example below. Character BURD 0101 0111 Field BURD Page BURD Display BURD 1111 1000 0000 1111 1010 0000 D413/D463 Page Attributes <036> <122> <104> <5> 1E 52 44 <5> <036> R D <5> (octal) (hex) (ASCII) Where: The value is a pair that sets page attributes and the value is an pair that resets page attributes. There are four attributes, each represented by a single bit: bit bit bit bit 3 2 1 o Dim Reverse video Underscore Blink For more information on pairs, see the "Forming Command Arguments" section of this chapter. The Field Attribute Extend bit determines whether the Field Attributes effect terminates at the end of the row or wraps until the next Field Attributes or end of the screen is encountered. Since the Field Attribute Extend and Blank bits are shared in dual emulations, changing these bits may affect the other emulation in split screen mode. NOTE: If the same bit is set in both and , then that bit will toggle. If the same bit in and is set to 0, then that bit will not change. 2-36 014-002111 Relative Cursor-Positioning Commands Cursor Right <030> 18 Ctrl-X all terminals (octal) (hex) (ASCII) Moves the cursor one column to the right. If the cursor is at the right margin, the screen executes a New Line. If the command causes the cursor to move onto a protected character and protect mode is enabled, the command is repeated until the first unprotected character is encountered. If all character positions in the window are protected, the entire window is scanned for an unprotected character, beginning at the current cursor position. Upon reaching the character at which the Cursor Right was initiated, the screen executes a Cursor Right as if no characters were protected. However, no data is altered. Cursor Left <031> 19 Ctrl-Y all terminals (octal) (hex) (ASCII) Moves the cursor one column position to the left. If the cursor is at the left margin of a line, it moves to the right margin and the screen executes a Cursor Up. If the command causes the cursor to move onto a protected character and protect mode is enabled, the command is repeated until the first unprotected character is encountered. If all character positions in the window are protected, the entire window is scanned for an unprotected character, beginning at the current cursor position. Upon reaching the character at which the Cursor Left was initiated, the screen executes a Cursor Left as if no characters were protected. However, no data is altered. Cursor Up <027> 17 Ctrl-W all terminals (octal) (hex) (ASCII) Moves the cursor up one line while remaining in the same column. If the cursor is on the top row of a window, it moves to the bottom row of the window. If the cursor moves onto a protected character and protect mode is enabled, the screen executes a Cursor Left. 014-002111 2-37 ;.:." .. », '. , lA Ctrl-Z . ~ ~ '" " all terminals Cursor Down <032> , " ,:JX-, .." (octal) (hex) (ASCII) Moves the cursor down one line while remaining in the same column position. If the cursor is on the bottom row of the window, it moves to the top row of the same window. If the cursor moves onto a protected character and protect mode is enabled, the screen executes a Cursor Right. all terminals New Line <012> OA Ctrl-J (octal) (hex) (ASCII) Moves the cursor to the left margin of the next row. If the cursor is on the last row of a window and Roll Mode is enabled, a Scroll Up is performed. If the cursor is on the last row of a window and Roll Mode is not enabled, a Home command is performed. If the command causes the cursor to move onto a protected character and protect mode is enabled, the screen executes a Cursor Right. all terminals Carriage Return <015> OD Ctrl-M (octal) (hex) (ASCII) Moves the cursor to the left margin of the same line. If the characters at the left margin are protected and protect mode is enabled, the screen executes a Cursor Right. '2-38 014-002111 Margins Commands Set Margins <036> <106> <130> 1E 46 58 <036> F X D413/D463 (octal) (hex) (ASCII) where the first pair is the desired left margin. The left margin must be less than or equal to the right margin and in the range 0 to 206 decimal or the command is ignored. the second pair is the desired right margin. The right margin must be greater than or equal to the left margin and less than or equal to 206 decimal. If out of this range, the command is ignored. For more information on pairs, see the "Forming Command Arguments" section of this chapter. Resets the margins to the new values specified. The cursor is moved to the left margin. Set Alternate Margins <036> <106> <131> lE 46 59 <036> F Y D413/D463 (octal) (hex) (ASCII) where the first pair is the row to place the cursor on, and must be in the range of decimal values from 0 to 24 decimal (for 25 line screens), or 255 decimal which means no row movement. If the row is out of range, the last row of the window is used. the second pair is the column of the new left margin. This margin is relative to the previously set left margin. If the column is the decimal value 255, then the last value for the left margin is used. If the new left margin is out of range, the command is aborted. the third pair is the column of the right margin, which must adhere to the rules defined by the Set Margins command. If the new right margin is greater than the previously set right margin, the previously set right marginis used. For more information on pairs, see the "Forming Command Arguments" section of this chapter. 014-002111 2-39 Temporarily reassigns the margins to new margins while saving the previously set margins. The terminal then positions the cursor to the relative row and the relative left margin. If the row specified equals 255, the current window row is used (current row position of the cursor). Normal margins are saved and new margins are set to the left and right values specified. NOTE: If Set Alternate Margins has already been issued, the previous alternate margins are not saved - only the original margins are saved. The previous alternate margins are lost in this case. The alternate left and right margins are relative to the left margin set by the Set Margins command. Automatic horizontal scrolling of the view-port is disabled until the next Restore Normal Margins .or Horizontal Scroll On command is encountered. Restore Normal Margins <036> <106> <132> 1E 46 SA <036> F Z 0413/0463 (octal) (hex) (ASCII) Restores the margins saved when the Set Alternate Margins command was executed. If horizontal scrolling is off as a result of a Set Alternate Margins command, it will be turned back on. 2-40 014-002111 Screen Management Commands Write Window Address all terminals (octal) (hex) <020> 10 Ctrl-P (ASCII) where sets the new column position of the cursor, relative to the left margin. If the parameter is equal to 177 octal, then the current value for the column is used. sets the new row position of the cursor, relative to the top of the window. If the parameter is equal to 177 octal, then the current value for row is used. Both values are entered in octal (raw, unencoded binary). Also, if the destination is in a protected area, the cursor is positioned to the specified position and the screen executes a Cursor Right. The cursor will be positioned at the address specified in the command after the Cursor Right sequence is completed. Positions the cursor to the requested row and column of the window. Window address coordinates are relative to the left margin and the top ofthe window. The left margin is position 0, with the maximum value being the right margin minus the left margin. The top row of the window is row O. The last row of the window is equal to the length of the window minus one. If you try to move to a position past the last row of a window, the cursor pegs at the end of the window. If you try to move to a position beyond the right margin, the cursor pegs at the right margin. If the command would place the cursor beyond the last column of the displayed area, the terminal horizontally scrolls to accommodate the cursor unless horizontal scrolling is disabled. If the value of an argument is 177 octal, the terminal interprets this to mean the current value. In the following example, begin with an initial screen configuration as shown below. Column 40 I Rowo~++++++++&.m[-------------1Mrnmrnmmrrrnm 24-row height 80-c0lumn display t------- 207-column total width - - - - - - " " ' " 014-002111 2-41 When using the Write Window Address command, the ordinates are relative to the current left margin. For example, in the illustration above (initial configuration), the left margin is 40 and the right margin is 120. The cursor is at Row 0, Column 40. A Write Window Address to Row 3, Column 30 is issued, and the resulting position of the cursor is Row 3, Column 70, as shown below. Column 70 Row 3 24-row height 1------ 207-column total width Window Home <010> 08 Ctrl-H -------1 all terminals (octal) (hex) (ASCII) Moves the cursor to the left margin of row 0 ofthe window. The command is automatically executed each time an Erase Window is issued. If the home position is protected and protect mode is enabled, the screen executes a Cursor Right. 2-42 014-{)02111 Set Windows <036> <106> <102> . . . IE 46 42 . . . <036> F B . . . D413/D463 (octal) (hex) (ASCII) where sets the length of the window and is in the range of decimal values from 0 to 24. sets the spacing type: o normal (81 columns) character spacing 1 compressed (135 columns) character spacing. For more information on pairs and codes, see the "Forming Command Arguments" section of this chapter. Lets the user specify the number of windows and number of rows associated with each window on the D4131D463 screen. It is possible to specify up to 24 windows or screen breaks with this command (or 25 windows if 25th Line Mode enabled). Windows are specified by setting the number of rows associated with each window. For example, the sequence <036>FBO>0080020 designates three windows with lengths of 14, 8, and 2 rows respectively, each with 81 characters per row. The command can be terminated early by 000, which allocates the remaining rows to the last window. For example, the sequence 0:0080000 designates three windows with row lengths of 10, 8 and 6; the last window is created by default to hold the remaining rows of the screen (24 - 10 - 8 =6). If the sum of the rows specified exceeds 24 (25 if the status line is configured as a screen row), the last window will contain the remaining portion of the screen. For example, the sequence <036>FBO:00:00:0 specifies three windows with row lengths of 10, 10 and 4. When defining or redefining windows, current text on the screen is not lost. It is therefore possible to split an existing group of rows into multiple windows. Conversely, it is possible to join the text from two or more adjoining windows into one. Since the text within windows may be horizontally scrolled independently of each other, the Set Windows command will align all text on the screen in accordance with the Left Margin. If horizontal scrolling is off, it is turned back on before the windows are set. For example, suppose two windows were currently defined on the D4131D463 screen, each with 12 rows. The top window is aligned in normal fashion (for example, window column 0 is aligned with screen column 0 and the left margin is zero). Text in the bottom window, however, has been horizontally scrolled to the left. Issuing a ne~ Set Windows command causes the bottom 12 lines of the screen to align with the top window before the new screen breaks are enforced. A Screen Home command is executed as the last function of the Set Windows command. 014-002111 2-43 Set 25th line Mode <036> <106> <172> 1E 46 7A <036> F z all terminals (octal) (hex) (ASCII) where <11> sets the mode: o 1 2 3 25th line displays a status line displays a message on the status line. To enter the message, simply append an pair to the command (which specifies the number of characters to display) and string the specified number of characters together after the pair. For example: <036>Fzl04Text 25th line is used as an extra screen row. The last window will be lengthened by one to include this line (the 25th row of the screen). 25th line is blanked. See the "Forming Command Arguments" section of this chapter for more information on <11> codes and pairs. This command sets the usage of the status line. 0413/0463 Push <036> <106> <150> 1E 46 68 <036> F h (octal) (hex) (ASCII) Saves only the character attributes, terminal modes, and screen boundaries described below: Character attributes Blink (on or oft) Underscore (on or oft) Reverse video (on or oft) Dim (on or oft), Protection (on or oft). Terminal modes Blink mode (enabled or disabled) Protect mode (enabled or disabled) Scroll rate (jump, slow, fast) 7/8 bit mode (7 or 8 bit) Cursor type (none, underscore, blinking underscore, reverse, or blinking reverse) Roll mode (enabled or disabled). 2-44 014-002111 ~~.·~X. x .~" .' .~ ." ~ .;. ":-:-x Screen boundaries Left margin Right margin Window definitions including the horizontal offset and current window. After a Push-Pop sequence, the screen remains stationary unless a Horizontal Scroll Enable or margin control command follows a Push command. D413/D463 Pop 1E 46 69 (octal) (hex) <036> F i (ASCII) <036> <106> <151> Saves only the character attributes, terminal modes, and screen boundaries described below: Character attributes Blink (on or oft) Underscore (on or oft) Reverse video (on or oft) Dim (on or oft) Protection (on or oft). Tennlnal modes Blink mode (enabled or disabled) Protect mode (enabled or disabled) Scroll rate Gump, slow, fast) 7/8 bit mode (7 or 8 bit) Cursor type (none, underscore, blinking underscore, reverse, or blinking reverse) Roll mode (enabled or disabled). Screen boundaries Left margin Right margin Window definitions including the horizontal offset and current window. After a Push-Pop sequence, the screen remains stationary unless a Horizontal Scroll Enable or margin control command follows a Push command. After a Pop command, the terminal executes a Window Home command. 01~02111 2-45 Write Screen Address all terminals <036> <106> <120> 1E 46 50 <036> F P (octal) (hex) (ASCII) where the first pair sets the absolute screen column within which to place the cursor. It must be in the range 0 to 206, or 255 decimal. If 255 is used, the terminal interprets the parameter to mean the current cursor column. the second pair sets the absolute row within which to place the cursor. It must be in the range 0 to 23 decimal (0 to 24 if 25th Line Mode is set), or 255 decimal. If the 255 is used, the terminal interprets the parameter to mean the current cursor row. Also, if either argument is out of range, the cursor pegs at the boundary encountered (at the margin if the column argument is outside the current margin and at the screen boundary if the row argument is out of range). For more information on pairs, see the "Forming Command Arguments" section of this chapter. The write screen address command positions the cursor anywhere on .the screen relative to the (0,0) position, not screen home (left margin,O). If the positioning of the cursor moves the cursor oft'the screen, the screen scrolls horizontally (unless horizontal scrolling is turned oft). If the command causes the cursor to move onto a protected character and protect mode is enabled, the screen executes a Cursor Right. The cursor will be positioned at the address specified after the Cursor Right is completed. This may require a long time if the entire screen is filled with protected characters. When using Write Screen Address, the vertical range is 0 to 23 decimal (24 if 25th Line Mode is set) and the horizontal range is 0 to 206 decimal. If the range of the arguments takes the cursor outside the margins, the cursor pegs at the margin. In the following example, begin with an initial screen configuration as shown below. Column 40 I Row 0 24-row height. 1------- 80-<:0lumn display 207-column total width -------4 With the above configuration, a Write Screen Address to Column 20, Row 2 scrolls the window text twenty columns to the left (to Column 20) and places the cursor on the third row (Row 2) of 2-46 014-002111 the screen, as shown in the next illustration. Remember that the first row of the screen is Row 0, so the third row of the screen is Row 2. Column 20 I Row 2 24-row height BO-column display 1------ 207-column total width -----~ NOTE: This command may select a new window. If the new destination of the cursor is within a new window, the new window boundaries take effect immediately. Scrolling and cursor movement are restricted to the new window. Select Compressed Spacing <036> <106> <113> lE 46 48 <036> F K D413/D463 (octal) (hex) (ASCII) Compresses character spacing for the current window to allow you to view all columns of a wide form (up to 135 columns) at one time. When you select compressed spacing, the columns displayed depend on the absolute column number of the leftmost column displayed with normal spacing. For example, when the leftmost absolute column number ranges from 0 to 72, compressed spacing displays the leftmost 135 columns. When the leftmost column number ranges from 72 to 126, compressed spacing displays the rightmost 135 columns. Margin settings are unchanged. 014-002111 2-47 Select Normal Spacing <036> <106> <112> 1E 46 4A <036> F J 0413/0463 (octal) (hex) (ASCII) Sets character spacing for the current window to allow you to view up to 81 columns at a time. If you select normal spacing and horizonal scrolling is disabled, 81 columns are displayed to the . right of and including the leftmost column displayed with compressed spacing. If you select normal spacing and horizontal scrolling is enabled, the columns displayed depend on the location of the cursor. The 81 columns will be displayed if the cursor is located in the leftmost 81 columns of the screen. If the cursor is not located in the first 81 columns of the screen, the column containing the cursor and the 80 columns to the immediate left of that column are displayed. The column containing the cursor becomes the rightmost column on the screen. Margin settings are unchanged. Named Save/Restore Cursor <036> <106> <175> 1E 46 7D <036> F } 0413/0463 (octal) (hex) (ASCII) where the first sets the memory number to be used (0 through 15 decimal). the second has one of the following values: saves the current position 1 restores the position from memory ° See the "Forming Command Arguments" of this chapter for more information on quantities. Provides 16 absolute cursor position save areas that may be individually accessed. If a memory that has not yet been saved into is restored, the cursor is sent to location (0,0). Any location can be restored multiple times. 2-48 014-002111 Save/Restore Screen Contents <036> <106> <163> 1E 46 73 <036> F s 0413/0463 (octal) (hex) (ASCII) where <11> sets which command to enact: o command specified is Save Screen Contents 1 command specified is Restore Screen Contents For more information on <11> values, see the "Forming Command Arguments" section of this chapter. Saves the contents of the screen to a secondary save area or restores an old copy of the screen. The Save Screen Contents and Restore Screen Contents commands are only valid when they are enabled in the Terminal Configuration Menu. If the terminal is not in dual host mode (the emulation is set to "Device" in the Configuration Menu), then all of the display will be saved (using the inactive emulation's memory). Otherwise, if another emulation is defined, the physical row length is cut in half (to 103 columns) and the screen is saved on undisplayed rows. For information on using the Configuration Menu, refer to the manual Installing and Operating D216E+. D217. D413, and D463 Display Terminals. When you issue a Save Screen Contents or Restore Screen Contents command, window definitions are pushed; then popped without interference with the operation of the PushIPop command. Currently, the Save/Restore Screen Contents command does not support protected characters or graphics. NOTE: Only the last save of the screen contents can be restored, and multiple restores can occur for each save. Graphics and Dynamically Reconfigurable Character Buffers (DRCB) are not saved. Screen Home <036> <106> <107> lE 46 47 <036> F G 0413/0463 (octal) (hex) (ASCII) Returns the cursor to the absolute 0 row, left margin of the screen. The current window is changed to th~ first window of the screen, and that window is scrolled to the left margin a~ necessary. If the home position is protected and protect mode is enabled, the screen executes a Cursor Right. 014-002111 2-49 Set Row Length <036> <122> <100> 1E 52 40 <036> R @ D413/D463 (octal) (hex) (ASCII) where sets the row length. For more infonnation on pairs, see the "Fonning Command Arguments" section of this chapter. Alters the physical row length used for partitioning screen RAM. The number of available rows is recalculated based on the new row length and the data on the screen is preserved as much as possible (if the lines are lengthened, then rows will be removed and blanks added to remaining rows; if the lines are shortened, then blank rows will be added after the end of the screen and data in columns past the new maximum right margin are lost). If the row length is set to fewer than 135 columns, then compressed mode is disabled. This command is not currently useful since the Set Windows command cannot take advantage of these added lines. 2-50 01 <106> <137> 1E 46 SF <036> F (octal) (hex) (ASCII) where the first pair sets the left most column of the area to display, specified in absolute ordinates (0 to 206 decimal). the second pair sets the right most column of the area to display, specified in absolute ordinates (0 to 206 decimal). For more information on pairs, see the "Forming Command Arguments" section of this chapter. Scrolls text in the window horizontally the minimum amount necessary so that the columns in the specified range are visible. If these columns are visible in the viewing area, the window is not moved. If the distance between the left and right columns is greater than the width of the window (81 columns) the command performs a minimal horizontal scroll so the left column is on the left side of the screen. D413/D463 Set Scroll Rate <036> <106> <124> lE 46 54 <036> F T (octal) (hex) (ASCII) where sets the scroll rate: o disables smooth scroll; makes all scrolling operations jump in the same fashion as the 1 2 DASHERlD2 display. enables smooth scroll at a maximum rate of 5 character rows per second. This rate permits easy reading of text as it is continuously displayed. enables smooth scroll at a maximum rate of 10 character rows per second. This rate is useful for scanning of long documents. Lets the host select one of three scroll rate options. If the argument specified does not fall within the inclusive range 0 to 2 (060 to 062 octal), the terminal defaults to jump scroll. 014-002111 2-51 0413/0463 Scroll Down <036> <111> 1E 49 <036> I (octal) (hex) (ASCII) Moves text in the window down one line and inserts a blank line at the top of the window. The cursor remains fixed on the screen. The line at the bottom of the window is lost. If a protected field is encountered, the screen executes a Cursor Right command. Ifhorizontal scrolling is enabled and the cursor is off the screen and encounters a protected character, then the screen scrolls horizontally. Ifno such character is encountered, then no horizontal scrolling occurs. The command is valid even if the terminal is currently in Roll Disable Mode. 0413/0463 Scroll Up <036> <110> 1E 48 <036> H (octal) (hex) (ASCII) Moves text in the window up one line and inserts a blank line at the bottom of the window. The cursor remains fixed on the screen. The line at the top of the window is lost. If a protected field is encountered, the screen executes a Cursor Right command. Ifhorizontal scrolling is enabled and the cursor is off the screen and encounters a protected character, then the screen scrolls horizontally. If no such character is encountered, then no horizontal scrolling occurs. The command is valid even if the terminal is currently in Roll Disable Mode. New Line and Cursor Right commands do not scroll in Roll Disable Mode; however, a Scroll Up command always results in scrolling. 0413/0463 Scroll Left <036> <106> <103> 1E 46 43 <036> F C (octal) (hex) (ASCII) where sets the number of columns to move text left, as an incremental value from the current offset. For more information on pairs, see the "Forming Command Arguments" section of this chapter. Scrolls text in the current window to the left for the number of columns specified. The cursor remains in the same position. If the scroll exceeds physical page boundaries, the window bumps the right page limit. Because every D4131D463 page is 207 columns wide, the maximum column offset is 126 (207 - 81). Ifhorizontal scrolling is disabled, then this command is ignored. 2-52 014-002111 The Scroll Left command is used explicitly to force text to move horizontally within the window. N onnal cursor movement beyond the visible portion of the screen can also cause horizontal scrolling. Scroll Right <036> <106> <104> 1E 46 44 <036> F D D413/D463 (octal) (hex) (ASCII) where sets the number of columns to incrementally offset the text. For more information on pairs, see the "Forming Command Arguments" section of this chapter. Moves text within the current window to the right. If the window movement violates physical page boundaries (for example, attempting to view something to the left of the first column), the window's leftmost column in the window is column o. Ifhorizontal scrolling is disabled, then this command is ignored. Horizontal offset is volatile after this command is executed if the cursor is moved off the screen. The next cursor movement or displayed character may cause an undesired horizontal scroll. To avoid this, use the Horizontal Scroll Disable command immediately after issuing a Scroll Right (or Left) command. Roll Enable <022> 12 Ctrl-R all terminals (octal) (hex) (ASCII) Turns on Roll Mode. In Roll Mode, each time a command is issued that moves the cursor beyond the bottom of the window, the screen scrolls up one line. The cursor then moves to the new line. Information previously displayed on the top row is lost. When the terminal is powered up, Roll Mode is the default state. The Cursor Down command is an exception because it always wraps to the top line of the window. 014-002111 2-53 Roll Disable <023> 13 Ctrl-S all terminals (octal) (hex) (ASCII) Turns off Roll Mode. With Roll Mode disabled, each time a command is issued that moves the cursor beyond the bottom of the window, the cursor wraps to the top line of the current window. Horizontal Scroll Disable <036> <106> <135> lE 46 SD <036> F ] D413/D463 (octal) (hex) (ASCII) In normal operation, the terminal horizontally scrolls the window to keep the cursor within the displayed area of the screen. The Horizontal Scroll Disable command disables that (default) scrolling. This command can be used to paint an area of the screen without distracting the operator by scrolling the window. The Set Alternate Margins command also turns off horizontal scrolling. Horizontal Scroll Enable <036> <106> <136> 1E 46 SE <036> F A D413/D463 (octal) (hex) (ASCII) Restarts horizontal scrolling. If the cursor is off the screen, the screen is scrolled the minimum distance necessary to display the cursor. This is the default power-up setting. 2·54 014-002111 Editing Commands all terminals Erase Window OC (octal) (hex) Ctrl-L (ASCII) <014> Erases all characters in a window and performs a Window Home command. All character attributes, including protection, are cleared. If the left margin is off the screen, the window scrolls horizontally to accommodate the new cursor position. Erase Screen <036> <106> 1E 46 45 <036> F E D413/0463 (octal) (hex) (ASCII) Erases all text in the terminal regardless of current window definitions or horizontal window alignments. The cursor is then moved to the first row of the screen, at the left margin. All window breaks are left unchanged. The window may scroll horizontally to accommodate the new cursor position. All character attributes, including protection, are cleared. all terminals Erase to End of Line OB (octal) (hex) Ctrl-K (ASCII) <013> Erases all text from the cursor to the right margin. If protect mode is enabled and a protected character is encountered before the right margin is reached, that protected character is treated as the right margin. The cursor position is left unchanged. Insert Line <036> <106> <110> 1E 46 48 <036> F H D413/0463 (octal) (hex) (ASCII) Inserts a row in a window. Text on rows beneath the cursor, including the row on which the cursor resides, is moved down one row within the window. Protected fields are moved down and stay with the text rows they are on before the insert line command was issued. The entire cursor row is blanked and the cursor remains fixed on the screen. . 014-002111 2-55 Delete Line <036> <106> <111> 1E 46 49 <036> F I 0413/0463 (octal) (hex) (ASCII) Deletes the row the cursor is currently on. Text on rows beneath the cursor row is moved up one row within the window. Protected fields are moved up and stay with the text rows they were on before the Delete Line command was issued. The entire cursor row is lost and a blank row appears at the bottom of the window. The cursor remains fixed on the screen unless a protected field in encountered. If the cursor encounters a protected field, the screen executes a Cursor Right command. . Insert Line Between Margins <036> <106> <133> 1E 46 5B <036> F [ 0413/0463 (octal) (hex) (ASCII) Inserts a line of text on the cursor row by copying rows down one row at a time. This command does not affect text outside of the margins. However, because it is a byte by byte copy, the execution is time consuming. The scrolling mode (smooth or jump scroll) is not enforced and the pagelRoll Mode status is also ignored. Otherwise, operation of this command is the same as the Insert Line command. Delete Line Between Margins <036> <106> <134> 1E 46 5C <036> F \ 0413/0463 (octal) (hex) (ASCII) Deletes a line of text on the cursor row by copying rows of the window up one row at a time. This command does not affect text outside of the margins. However, because it is a byte-by-byte copy, the execution is time consuming. The terminal does not enforce Scroll Mode (smooth or jump scroll), and the page/Roll Mode status is ignored. Otherwise, operation of this command is the same as the Delete Line command. 2-56 014-002111 Erase Unprotected <036> <106> <106> 1E 46 46 <036> F F 0413/0463 (octal) (hex) (ASCII) If protect mode is enabled, this command erases all unprotected text from the cursor to the end of a window. If protect mode is disabled, all text from the cursor to the end of the window is blanked and protected fields are lost. Unlike other erase commands, this command operates between the left and right margins. The cursor position is left unchanged after the command. Insert Character <036> <112> 1E 4A <036> J 0413/0463 (octal) (hex) (ASCII) Inserts a blank character under the cursor by rippling characters to the right and putting a space under the cursor. The character at the right margin is lost. If protect mode is enabled and a protected character is encountered before the right margin is reached, that protected character is treated as the right margin. Oelete Character <036> <113> 1E 4B <036> K 0413/0463 (octal) (hex) (ASCII) Deletes the character under the cursor by rippling characters to the left and bringing in a space at the right margin. If protect mode is enabled and a protected character is encountered before the right margin is reached, that protected character is treated as the right margin. The character under the cursor is lost. 01~02111 2-57 · "...... x ~ § , , "" «- ....." . Programmable Function Key Commands Host Programmable Function Keys <036> <106> <153> 1E 46 65 <036> F k 0413/0463 (octal) (hex) (ASCII) where is a one byte parameter that defines erasure mode. Valid parameters are: o Clear to predefined defaults. This mode requires no arguments. 1 to 4 Reserved for D555 terminal. A value for mode between 1 and 4 will cause the sequence to fail. Clear to predefined defaults and load new user key definitions. 5 6 Add to, or overwrite, previously defined key definitions. 7 Save up to 128 bytes out of the possible 255 bytes of the current key definitions in non-volatile RAM to be restored only on power up, or upon hard terminal reset (Cmd-Erase Page). This mode requires no additional arguments. 8 Read current user programmed key definitions (see also Read User Programmed Keys command, on next page). This mode requires no additional arguments. is a pair that sets the key to be defined. The range is 0 decimal to 59 decimal. Function keys Fl through F15 are broken into the ranges below: Normal Shifted Ctrl Ctrl-Shift 0- 14 decimal 00 - OE hex 15 - 29 decimal OF - ID hex 30 - 44 decimal IE - 2C hex 45 - 59 decimal 2D - 3B hex is a pair that sets the length of the string being programmed. The range on this parameter is decimal values from 0 decimal to 255 decimal. A zero length will cause the key to be cleared to the predefined default. No string is required or expected with a zero length parameter. contains the actual ASCII key definition encoded as a string of pairs For more information on quantities and pairs, see the "Forming Command Arguments" section in this chapter. Allows one or more of the 60 predefined function key codes to be reprogrammed with user defined sequences. Programmed function keys share 255 bytes of volatile memory space. This memory can be allocated entirely to one key if desired. Keys that do not have a user definition send the default function key sequences. When programming keys, this sequence will continue to 2-58 014-002111 accept new key definitions until terminated with an out of range key number. You can also program function keys through the Configuration menus. For information on using the Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. Programming Example A user wants to clear any previous key definitions and make two of his own definitions: "hello" and "goodbye" to be on the Shift-Fl and Shift-F5 keys, respectively. The format for this command, as shown above is: <036>Fk ... The command sequence to perform our example is: <036>Fk50?0568656<6<6?1307676?6?64627965? where <036> Clear and load new keys O? Shift-Fl 05 5 characters 68656<6<6? ASCII hello in DO-hex 13 Shift-F5 07 7 characters 67?6?64627965 ASCII goodbye in DO-hex ?? Illegal key code terminates sequence. Reading User Programmed Keys The terminal will respond to this query from the host by sending information on current function key definitions in the following format. <036>0;4 where <036>0; 4 is the response header is the total number of bytes that will be sent in an format. For more information on quantities, see the "Forming Command Arguments" section of this chapter. , , and are the same as the parameters in the Host Programmable Keys command This feature can be useful for applications that reprogram the function key definitions. It allows the application to read and save the current key definitions so that they may be restored on exit. 014~02111 2-59 Programming Example The sequence returned by <036>FkB after executing the above example (for the Host Programmable Keys command) would be: <036>0;40020010568656<6<61130767616164627965 2-60 014-002111 Reporting Commands Report Screen Size <036> <106> <164> 1E 46 74 <036> F t all terminals (octal) (hex) (ASCII) Lets the host determine the maximum number of available rows and columns. The data returned is in the following format (for more information on pairs, see the "Forming Command Arguments" section ofthis chapter. <036> <157> <074> 1E 6F 3C <036> 0 < (octal) (hex) (ASCII) where the first pair indicates the number of available screen rows. the second pair indicates the number of available screen columns (207 normally). the third pair indicates the number of available rows in the current window. the fourth pair indicates the number of available columns in the current window (right margin - left margin + 1). is an ASCII character composed of eight bits (representing the terminal state) in the format of 01HHMMSE, HH is the 10 code ofthe other emulator (00 hex Data General native-mode; 01 for VT320 mode; 10 for TEK4010; 11 for Printer or Mouse) MM is the port mode ofthe emulators (00 for Both; 01 for Host; 10 for Auxiliary), and has no meaning ifHH is set to 11. S is 1 if the screen has been saved E is 1 if screen save is enabled For example, the host sends the code <036>Ft. The terminal responds with the code <036>o<18 <106> <117> 1E 46 4F <036> F 0 D413/D463 (octal) (hex) (ASCII) When this command is issued by the host, the terminal returns the distance the current window is horizontally scrolled over from the absolute zero Qeft most) column of the screen. The format of the data retumed to the host is: <036> <157> <072> 1E 6F 3A <036> 0 : (octal) (hex) (ASCII) where indicates the value of the horizontal offset. This value is in the range of decimal values from 0 to 126 with the lower four bits of two bytes specifying the eight-bit value of the scrolled offset. For more information on pairs, see the "Forming Command Arguments" section of this chapter. all terminals Read Window Address <005> 05 Ctrl-E (octal) (hex) (ASCII) The terminal sends the following three character sequence back to the computer. <037> 1F Ctrl- (octal) (hex) (ASCII) where is the window column the cursor is on (relative to the left margin mod 128) is the window row the cursor is on (relative to the top of the window) Both and are two raw binary characters, and therefore are not encoded. 2-62 014-002111 Read Screen Address <036> <106> <142> 1E 46 62 <036> F b D413/D463 (octal) (hex) (ASCII) The terminal sends the following five character sequence back to the computer. <036> <157> <070> 1E 6F 38 <036> 0 8 (octal) (hex) (ASCII) where the first pair is the absolute screen column. the second pair is the absolute screen row. For more information on pairs, see the"Forming Command Arguments" section of this chapter. Read Window Contents <036> <106> <166> 1E 46 76 <036> F v all terminals (octal) (hex) (ASCII) where are two pairs that specify the bounded area's upper left corner. are two pairs that specify the bounded area's lower right corner. For more information on pairs, see the "Forming Command Arguments" section of this chapter. Returns the contents of any bounded area of the screen to be transmitted back to the host. The rectangular area bounded by (rl,c1) and (r2,c2) is shipped to the host with <015> <012> (OD OA hex) between each row and with trailing blanks on each row stripped. The data sent to the host is similar to what would be printed, were a printing command used. The characters on the screen are translated using the settings of GO and G 1. If a character on the screen does not belong to either assigned character set, then it will be translated as a space. If any of the given parameters are out of range, then nothing will be transmitted. Also, if the user presses the Local Print or Cmd-CR keys during this operation, it will be terminated. Like any ofthe printing commands, an will be sent back to the host after the operation is complete only if this option has been selected on the Configuration Menus. For information on using the Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. 014-002111 2-63 Read Model 10 all terminals (octal) (hex) (ASCII) <036> <103> IE 43 <036> C The terminal sends the following string back to the host computer: <036> <157> <043> (octal) IE 6F 23 (hex) (ASCII) <036> 0 * where is a character that identifies the type of terminal. This character can be set in the menus or by the Set Model ID command. The table below lists the default $ettings. Terminal 0217 0413/0463 Octal <065> <066> Hexadecimal ASCII 35 5 36 6 is a character formed from bits defined as OlTC PRRR, where T 0 if the power on self test passed, 1 if errrors are detected. COif 7 bit communications mode 1 if 8 bit communications mode P 0 if printer not available 1 if printer is available R 3 bit firmware revision number 0-7. is a character formed from bits defined as OI6K LLLL, where: 0 if graphics are not available, 1 if D460 graphics available K 0 ifkeyboard missing 1 ifkeyboard installed L is from the following table: G 2-64 014-002111 Keyboard Switches Keyboard Nationalitv 0000 0001 0010 0011 0100 1010 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 not used not used Norwegian Swiss/French Swiss/German Canadian/French Katakan Italian Canadian/French U.S. English United Kingdom French German Swedish/Finnish Spanish Danish/Norwegian all terminals Read New Model 10 <036> <106> <167> 1E 46 77 <036> F w (octal) (hex) (ASCII) The terminal sends the following returned string back to the host computer: <036><157><167> 1E 6F 77 <036> 0 w (octal) (hex) (ASCII) where is a single digit specifying the general type of the terminal. The following classes are currently defined: o 1 3 4 8 unintelligent terminal, handles no commands except and D200 level data-entry terminal D410 without Dynamically Reconfigurable Character Buffer (DRCB) D410 level text--editing terminal D460 level graphics terminal is an pair representing the specific terminal ID within the class. Any unknown code should be treated as the next lower known code. The D4131D463 returns 01. 014-002111 2-65 is an pair encoding the firmware revision number. is an eight-character blank. padded string with a human-readable terminal model-name. This is given for producing readable error logs for testing. The D2171D4131D463 returns "D217", "D413", or "D463". CAUTION: Do not test or compare any part of this string! is a field of four spaces. For more information on pairs, see the "Forming Command Arguments" section of this chapter. This command returns a more detailed description of the terminal type and capabilities. The original Model ID command «036>C) reported a unique number for each terminal and there was no way to determine the capabilities of a new, unrecognized terminal. It should not be necessary to reserve any new model IDs for the traditional Model ID command for future terminals. 2-66 014-002111 Dual-Emulation Support Commands Hot Key Switch <036> <106> <155> <065> 1E 46 6D 35 <036> F m 5 D413/D463 (octal) (hex) (ASCII) Changes the terminal from the active emulation to the currently inactive emulation. This command is only valid during a dual host session. It is mainly used with a diagnostic routine to check out the dual host functionality. Switch Emulation Mode <036> <106> <176> 1E 46 7E <036> F - all terminals (octal) (hex) (ASCII) where has 00 08 09 OC 10 one of the following hex values: Data General native-mode (not generally used) VT52 VT100 VT320 Tektronix 4010 For more information on pairs, see the "Forming Command Arguments" section of this chapter. This command returns the following string back to the host: <036> <157> <176> 1E 6F 7E <036> 0 - (octal) (hex) (ASCII) where is 0 if the command failed; or 1 if it succeeded. Changes the current emulation from Data General native-mode to any other emulation supported by the terminal. All volatile mode settings are lost. 0102111 2-67 x" ,. " " :8".. .~ ~. , Set Split Screen Mode <036> <122> <101> <060> 1E 52 41 30 <036> R A 0 0413/0463 (octal) (hex) (ASCII) where encodes the number of rows for the emulation to be displayed on the top. See the "Forming Command Arguments" section of this chapter for more information on pairs. If is 0, split screen is disabled. If is out of range, then the current split point is left unaltered. sets the emulation to be displayed in the top partition, with the following values: o host 1 auxiliary Configures a terminal set for dual host to display portions of host and auxiliary emulations on . the same screen, separated by a horizontal line. The status line is always displayed in Split Screen Mode. If the split point is changed by a valid parameter, both emulations' first-row-to-display options are reset to zero. NOTE: Cmd4:!ursor Uparrow/Downarrow moves the split point up and down. Set First Row To Display <036> <122> <101> <061> IE 52 41 31 <036> R A 1 0413/0463 (octal) (hex) (ASCII) where sets the first physical row of the emulation's split-screen partition. See the "Forming Command Arguments" section in this chapter for more information on pairs. If this number is out of range, the maximum offset given the current setting of the status line is used (see Set 25th Line Mode command, earlier in this chapter). Sets the first physical row to be displayed in the emulation's split-screen partition. NOTE: Cmd-Shiftr-Cursor Uparrow/Do,wnarrow sets the first physical. row of the active emulation. 2-68 01~2111 Set Device Options <036> <122> <102> lE 52 42 <036> R B 0413/0463 (octal) (hex) (ASCII) where is an character with the following values: o printer 1 mouse (if mouse is selected, then the rest of the parameters are ignored). is an character with the following values: o Form Feed off 1 Form Feed before 2 Form Feed after 3 Form Feed before and after is an character with the following values: o ASCII and DGI 1 ASCII and VT Multinational 2 IBMPC 3 NRC Only 4 NRC and VT Line Drawing 5 Katakana is an character with the following values: o No graphics 1 DG graphics 2 IBM Pro-Printer Compatible graphics. See the "Forming Command Arguments" section in this chapter for more information on quantities. Sets the device type connected to the other port if the other port is not used for an active emulation. This command is generally used for dual-host-on-one-port operations when some other device is attached to the other port. 014-002111 2-69 Miscellaneous Commands Set Cursor Type <036> <106> <121> 1E 46 Sl <036> F Q D413/D463 (octal) (hex) (ASCII) where sets the cursor type: o 1 2 3 4 5 disables the cursor from being displayed, while saving the current cursor attributes selects a blinking underscore Gike the D1JD2 cursor). If the cursor is currently off, turns the cursor on. selects a reverse video block (like the D410/D460 cursor), which is the default cursor type. If the cursor is currently off, turns the cursor on. selects a blinking reverse video block. If the cursor is off, turns the cursor on. makes the cursor an underscore. If the cursor is off, turns it on. displays cursor with the saved attributes. Selects one of the five cursor types. Set ModellD <036> <106> <173> 1E 46 7B <036> F { all terminals (octal) (hex) (ASCII) where sets the model ID (see the "Forming Command Arguments" section for more information on pairs). If this parameter is decimal value 0, then the default ID will be used. is 0 if graphics operations are not possible, or 1 if graphics are possible. This code will be ignored, but must be present, if is O. Allows the host computer to program the model ID response of the Read Model ID command so that older applications recognize newer terminals as older terminals. 2-70 014-002111 · Set Clock Time <036> <106> <162>
pairs, with each pair containing 10 bits. The Define Character command explains
pairs in more detail. Each 5-bit sequence is encoded in the following fonnat: 010BBBBB or @ through _ (40 hex through 5F hex) all terminals Character Loopback <036> <106> <155> <064> 1E 46 6D 34 <036> F m 4 (octal) (hex) (ASCII) where sets the length of the string, from 0 through 255 characters. For more infonnation on pairs, see the "Forming Command Arguments" section in this chapter. is the string of characters to echo back to the host. Causes the tenninal to echo the character string back to host without any translation of the 8-bit characters. 2-90 014-002111 Fill Screen With Character <036> <106> <076> lE 46 3E <036> F > all terminals (octal) (hex) (ASCII) where is the ASCII character that will fill the terminal screen. Fills the display screen with the given character, using the current character attributes. Fill Screen With Grid <036> <106> <071> lE 46 39 <036> F 9 all terminals (octal) (hex) (ASCII) Fills the display with a grid to facilitate screen alignments or measurements. Display Character Generator Contents <036> <106> <070> lE 46 38 <036> F 8 all terminals (octal) (hex) (ASCII) Dumps the contents of the CGEN ROM to the display screen. The entire contents of the CGEN, a total of 512 characters, is displayed over and over, filling the entire screen between the current margins. Perform UART Loopback Test <036> <106> <074> lE 46 3C <036> F < all terminals (octal) (hex) (ASCII) Performs loopback testing on host and printer UARTS. Error messages will be displayed on the screen. A loopback connector must be placed on the back of the terminal for the UART being tested for this command to work properly. This command causes a soft terminal reset. This command must be entered off-line. End of Section End of Chapter 014-002111 2-91 Chapter 3 VT320/100/52 Emulations This chapter provides the programming information for the VT320, VT100, or VT52 terminal emulations running on the D2171D4131D463 line of Data General terminals. This chapter has three major sections: Summary ofVT320J100 Operations VT32OJ100. Emulation Control Sequences VT52 Operations and Escape Sequences Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and various VT32OJ100/52 emulator reference material is covered in related appendices. 014-002111 3-1 A Note on VT Emulation Syntax Conventions We established a set of general syntax rules that are used wherever references occur to VT3201100 control sequences. These rules, listed below, provide a uniform method of documenting VT320/100 control sequences. . • In control sequences, 7-bit and 8-bit control codes are represented by ANSI mnemonics. • Remaining hex codes in control sequences are represented by printable ASCll characters. • Nonprintable ASCII characters in control sequences are represented in capital letters and are enclosed within angle brackets « ». For example, the space character is . • Spaces between characters in control sequences are provided to improve clarity only. H a space character is part of a control sequence, it will be indicated as . • Control sequence parameters, when possible, are illustrated with labels or abbreviations that indicate the nature or use of the parameter. These labels, always in lower case type, are enclosed within angle brackets to indicate that they are not to be taken literally. Examples of parameter forms are: , , or . 3·2 014-002111 VT320/100 Summary of Operations This section provides a summary of the operations information specific to the Vf320/100 emulation. This section does not cover specific format or usage information for Vf320/100 control sequences, which are covered in "VT3201100 Control Sequences," later in this chapter In particular, this section explains the subjects covered in the following list: VT320/100 Emulation Features Control Codes Control Sequences Generated Keyboard Codes Character Sets ANSI Standard Mode Switches ANSI Private Mode Switches User-Defined Keys Character Attributes Line Attributes Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and various VT320/100 emulator reference material is covered in related appendices, located at the back of this manual. 014-002111 3-3 VT320/100 Emulation Features The D217/D4131D463 terminals, in both 7-bit and B-hit communications modes, operate in accordance with ANSI standards 3.4, 3.41, and 3.64. Due to hardware differences, there are some minor differences between our VT320/100 terminal emulations and the DEC VT320 and VT100 terminals. Major operating features of the VT320/100 emulations are listed below: • Emulates both DEC VT320 and VT100 terminals • Screen displays up to 25 lines of 80 characters displayed in a 10 x 12 dot matrix or up to 25 lines of 132 characters displayed in a 6 x 12 dot matrix • Definable scrolling region • Bidirectional (vertical) smooth scrolling • Displays and prints double-height or double-width lines .• Text attribute for selective erasure (VT320 emulation only) • Two downline loadable (DLL) character sets (VT320 emulation only on D463) 3-4 014-002111 Control Codes There are two groups of control codes, one 7-bit set and one 8-bit set. The set of7-bit control codes is called CO and the set of B-hit codes is called Cl. CO runs from 0 hex through IF hex. Cl runs from 80 hex through 9F hex. The CO set and the Cl set of codes are shown in Table 3-1. Table 3-1 All CO and C1 Control Codes Hex Codes 0 9 A NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF B VT C FF CR SO SI CO 0 1 2 3 4 5 6 7 8 0 E F 1 OLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US Codes 2 ... 7 8 9 A .. . F DCS PU1 PU2 STS CCH MW SPA EPA .GL Characters IND NEL SSA ESA HTS HTJ VTS DID PLD CSI PLU ST OSC RI SS2 PM SS3 APC C1 Codes GR Characters Received Control Codes Subsets of the entire range of CO and Cl control codes are supported by the terminal and therefore cause a terminal~efined operation to occur upon receipt of the code from the host. Table 3-2 shows the supported control codes from the CO set. Table 3-3 shows the supported control codes from the C 1 set. 0102111 3-5 Table 3-2 SUpported CO Control Codes Mnemonic Name Hex Code Ctll Key Plus ••• Action ENQ Enquiry E Transmits answerback message. BEL Bell G Generates bell tone if bell is enabled. BS Backspace 05 07 08 H Moves cursor to the left one position, unless the cursor is at the left margin. HT Horizontal tab 09 LF Linefeed OA J Causes a linefeed or a new line, depending upon the state of new line mode (LNM). VT Vertical tab OB K Processed the same as a LF. FF Form feed OC L Processed the same as a LF. CR Carriage return 00 M Moves cursor to left margin on current line. SO Shift out OE N Shifts G1 character set into GL. (locking shift) SI Shift in OF 0 Shifts GO character set into GL. (locking shift) DC1 Device control 1 11 Q Also called XON. Allows transmission to resume if in limited transmit mode and XOFF was previously received; ignored othelWise. DC2 Device control 2 12 R Prints the next character literally.. DC3 Device control 3 13 S Also called XOFF. Halts transmission of all codes except XONIXOFF if in limited transmit mode; ignored othelWise. ESC Escape 1B NOTE: 3-6 Moves cursor to the next tab stop or right margin if no more tab stops in the line. Processed as escape sequence introducer. Terminates any control or escape sequence in progress. The Ctrl Key Plus (fourth column) combination is created by pressing the Ctrl key on the keyboard while simultaneously pressing the indicated character or symbol key. 014-002111 Table 3·3 Supported C1 Control Codes Mnemonic Name Hex Code 7-bit Code Equivalent IND Index 84 ESCD Moves cursor down one line in current column. If the cursor is at the bottom margin, the screen scrolls up one line. NEL Next line 85 ESCE Moves cursor to first position in the next line. If the cursor is at the bottom margin, the screen scrolls up one line. HTS Horizontal tab set 88 ESCH Sets a tab stop at the current cursor column. RI Reverse index 80 ESCM Moves cursor up one line in current column. If cursor is at the top margin, the screen scrolls down one line. SS2 Single shift G2 8E ESCN Shifts the G2 character set into GL for the next character only. SS3 Single shift G3 8F ESC 0 Shifts the G3 character set into GL for the next character only. DCS Device control 90 string ESCP Marks the beginning of a device control string. Terminates any control or escape sequence in progress. CSI Control 98 sequence introducer ESC [ Marks the beginning of a control sequence. Terminates any control or escape sequence in progress. ST String terminator 9C ESC \ Terminates the data stream in a device control string. OSC Operating 9D system command ESC] Starts a string similar to a DCS string, but is ignored. Terminates any control or escape sequence in progress. PM Private message 9E ESC Starts a string similar to a DCS string, but is ignored. Terminates any control or escape sequence in progress. APC Application common 9E ESC 014-002111 1\ Action Starts a string similar to a DCS string, but is ignored. Terminates any control or escape sequence in progress. 3-7 Transmitted Control Codes Various keys on the keyboard, when pushed, send a control code to the host (if on-line). The code sent often depends upon operating mode (ANSI standard mode versus ANSI private mode) . parameters. Transmitted codes are always 7-bit ANSI codes for the D2I7 and are either 7-bit or B-bit for other terminals. Refer to "Transmission Control Sequences," later in this chapter, for more information on selecting 7-bit or 8-bit communications. Table 3-4, Table 3-5, Table 3-6, Table 3-7, and Table 3-8 list the control codes that are transmitted by the terminal. These tables are for the 107-key standard Data General keyboard. The control codes transmitted by a 101-key keyboard may be similar; see "Generated Keyboard Code," later in this chapter, for more information on the 101-key keyboard. That section lists all codes, including many from different keystroke combinations, sent by the terminal to the host computer. Table 3-4 Control Codes Generated from the Editing Keys (VT320/100) Function Keyboard Code VT320 VT100 Erase page Find CSI1- none Print Insert here CSI2- none Erase EOl Remove CSI3- none Shift - Erase page Select CSI4- none Shift - Print Previous Screen CSI5- none Shift- EOl Next Screen CSI6- none Table 3·5 Control Codes Generated from the Cursor Control Keys (VT320/100) Key Control Codes Normal mode Application mode Uparrow CSIA SS3A Dow narrow CSIB SS3B Rightarrow CSIC SS3C leftarrow CSID SS3D NOTE: 3-8 "Normal mode" and "Application mode" refer to the reset and set state, respectively, of the Cursor Key Mode, which is an ANSI private operating mode parameter. 014-002111 Table 3-6 Control Codes Generated from the Auxiliary Keypad (VT320/100) Key Keypads Numeric Mode 1 Application Mode 1 0 0 SS3p 1 1 SS3q 2 2 SS3 r 3 3 SS3s 4 4 SS3t 5 5 SS3u 6 6 SS3v 7 7 SS3w 8 8 SS3x 9 9 SS3y - (minus) J SS3m SS31 (comma) . (period) SS3n Enter CR SS3M PF1 SS3 P SS3P PF2 SS3Q SS3Q PF3 SS3R SS3R PF4 SS3S SS3S These modes refer to the set or reset state of the Keypad Numeric Mode and Keypad Application Mode, both of which are ANSI private operating mode parameters. 1 014--002111 3-9 Table 3-7 Control Codes Generated from the Function Keys (VT320/100) 107-Key Keyboard VT320 Keyboard Control Code VT320 VT100 F20 F1 (or Hold Screen) none none F18 F2 (or Print Screen) none none CmdlF17 F3 (or Set-Up) none none F19 F4 (or DataITalk) none none F16 F5 (or Break) none none F1 F6 CS117 ... none F2 F7 CS118'" none F3 F8 CS119'" none F4 F9 CS120 ... none F5 F10 CS121'" none F6 F11 CS123'" ESC F7 F12 CS124'" BS F8 F13 CS125 ... LF F9 F14 CS126'" none F10 F15 CS128 ... none F11 F16 CS129'" none F12 F17 CS131'" none F13 F18 CS132'" none F14 F19 CS133'" none F15 F20 CS134- none NOTE: The D217 lets you select VT220 function keys (F1 through F15 on the DG 147 keyboard) in the. Configuration menus. For information on using the Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. 3-10 01~02111 Table 3-8 CO Control Codes Generated from the Main Keypad (VT320/100) Ctrl Key Plus ••• Mnemonic Hex Code 2or@ A B NUL SOH STX 00 01 02 C 0 E F 03 04 05 06 07 J ETX EOT ENQ ACK BEL BS HT LF K VT G H I L M N FF 08 09 OA OB 3 or [ 4or\ 5 or] 6 or- SYN ETB CAN EM SUB ESC FS GS RS OC 00 OE OF 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 10 1E 7 or? US 1F 8 DEL 7F 0 P Q R S T U V W X Y Z CR SO SI OLE OC1 OC2 OC3 OC4 NAK Dedicated Function Keys F12 (BS)1 Tab F13 (LF)1 Return (CR) F11 (ESC)1 DEL 1 These keys are used in the VT100 to generate the control codes indicated. (0217 - VT220 function keys are disabled.) 014-002111 3-11 Using 8-bit Code in 7-bit Environments All C1 (B-bit) control codes may be expressed as CO (7-bit) code extensions by using the ANSI defined conversion method outlined in ANSI document X3.41. The process of converting C1 code into CO code is summarized below: 1. Make the first character of the sequence an escape character (1B hex, also known as the CO code ESC). 2. Subtract 40 hex from the hexadecimal C1 control code, and make that the second character. For example, consider the C1 control code CSI (9B hex). This is converted into a CO code as shown below: CSI = 1B [9B minus 40] = 1B 5B = ESC [ You should use 8-bit control codes in applications programs because there is one less byte to transmit and process. We also suggest that your application support both 7-bit and 8-bit modes because not all terminals can use 8-bit control codes. For example, the VT100 emulation running on a D217 uses 7-bit codes only. The VT100 running on a D217 lets you select 8-bit characters in the Configuration menu (keyboard mode - ISO.) For information· on using the Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. 3-12 014-002111 Control Sequences A control sequence is a string of ASCII characters that contains commands and/or arguments (parameters) that direct the terminal to perform specific functions. Most control sequences begin with the control sequence introducer, which is the B-bit CSI control code. The introducer is then followed by one or more ASCII characters, which specify function types and parameters. CSI is an B-bit code and can only be used in B-bit environments. However, CSI can be expressed as a 7-bit code by replacing the CSI character with "ESC [". Examples of a control sequence (and its 7-bit equivalent) are: eSI 3 L (8-bit only) or ESC 3 L (7-bit or 8-bit environments) where "L" specifies the Insert Line function, and "3" is a parameter indicating the number of lines to insert. There are two other types of control sequences, both of which differ from the control sequence shown above because they begin with different ASCII characters (the escape character and a device control string) and have different purposes. Escape Sequences An escape sequence begins with the escape character (ESC), which is followed by one or more ASCII characters. ESC is a 7-bit control code, thus escape sequences can be used in both 7-bit and 8-bit environments. An example of an escape sequence is: ESC H (7-bit or 8-bit environments) Where "H" specifies a command that sets a tab stop at the current column. Device Control Strings Generally, a device control string starts with the B-bit DCS control code, is followed by parameters and a command code and a data stream of ASCII characters, and is terminated by the 8-bit ST control code. A device control string can also begin with the Cl control codesOSC ("ESC ]"), PM ("ESC A"), or APC ("ESC _"). A device control string is functionally similar to a control sequence but contains variable length data; for this reason, it is delimited with a string terminator (ST), which tells the terminal when the last piece of data has been sent. As is the case with the CSI code, both the DCS and ST 8-bit control codes can be replaced with "ESC P" and "ESC \" for use in 7-bit . environments. Examples of 7-bit and B-hit device control strings are: Des 0; 1 I 17 /7F ; 18/08 ST (8-bit environments only) or ESC PO; 1 I 17 /7F ; 18/08 ESC \ (7-bit or 8-bit environments) 0102111 3-13 where "0;1" are parameters, "I" is a character that specifies the User Define Keys operation, and "17I7F;1B10B" is the data stream that contains information to map function keys F1 and F2 to the Delete and Backspace keys, respectively. The string terminator "ST" is used at the end to delimit data and to terminate the operation. Generated Keyboard Codes Each time you press a key, data is sent to the terminal. The terminal then interprets this data as either a local key (such as a Shift key) or as a code generating key (such as the character "A"). If a character code is generated, it is then either send on to the host computer, ifin on-line mode, or is taken as direct input by the terminal, if in off-line mode. Transmitted codes are always 7-bit ANSI codes for the D217 and are either 7-bit or B-bit for other terminals. Refer to the "Transmission Control Sequences" section of this chapter for more information on selecting 7-bit or B-bit communications. The terminal supports two keyboards, a 101-key keyboard, similar to an IBM-PC AT-style keyboard, and a 107-key Data General proprietary keyboard. Table 3-9 through Table 3-13 show the codes generated by each key or keystroke combination for the 101-key and l07-key keyboards, including the key mapping to a VT320 or VT100 keyboard. We did not include the code generated by the main keypad because the code is simply the code of the character on the keycap. 3-14 014-002111 Table 3-9 Keyboard Generated Codes 101-key Keyboard Keyboard F1 F2 F3 F4 FS F6 F7 F8 F9 F10 F11 or AIt-F1 F12 or Alt-F2 AIt-F3 AIt-F4 Alt-FS Ctrl-Break R.Ctrl-Scroll Lock Print Screen F6 F7 F8 F9 F10 F11 F12 F13 F14 Help (F1S) Do (F16) F17 F18 F19 F20 Break Setup Print lO7-key Keyboard F1 F2 F3 F4 FS F6 F7 F8 F9 F10 F11 F12 F13 F14 F1S Cursor Type Cmd-N/C Local Print Scroll Rate Hold C1 C2 C3 C4 Function Keys (VT320) VT320 Normal CS117CS118CS119CSI2OCS121CS123CS124CSI2SCS126CS128CS129CS131CS132CS133CS134Break none none n/a nla nla Pause Alt-F9 Alt-F10 AIt-F11 AIt-F12 Hold PF1 PF2 PF3 PF4 none SS3 P SS3Q SS3R SS3S Shift UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 UDK1 none none none nla none SS3P SS3Q SS3R SS3S 1 UDK means user defined key function. 014-002111 3-15 Table 3-10 Keyboard Generated Codes - Function Keys (VT100) VT100 107---key Keyboard 101-key Keyboard F6 F7 F8 C1 C2 C3 C4 Cursor Type Cmd-N/C local Print Scroll Rate Hold F6 F7 F8 Alt-F9 AIt-F10 AIt-F11 AIt-F12 Ctrl-Break RCtrl-Scroli lock Print Screen nla Pause Keyboard Escape Backspace Line Feed PF1 PF2 PF3 PF4 Break Setup Print nla Hold Code 1Bhex 08 hex OAhex SS3P SS3Q SS3R SS3S nla nla nla nla nla 1 D217/VT1OO with VT220 function keys disabled. Table 3-11 Keyboard Generated Codes - Editing Keypad (VT320) 107---key Keyboard Erase Page Print Erase EOl Shift-Erase Page Shift-Print Shift-Erase EOl 101-key Keyboard VT320 Keyboard Insert Home Page Up Delete End Page Down Find Insert Here Remove Select Previous Screen Next Screen Code CSI1CSI2CSI3CSI4CSI5CSI6- Table 3-12 Keyboard Generated Codes - Cursor Keypad (VT320 and VT100) 107---key Keyboard Uparrow Rightarrow leftarrow Downarrow Home 3-16 101---key Keyboard Uparrow Rightarrow leftarrow Downarrow nla VT320/100 Keyboard Uparrow Rightarrow leftarrow Downarrow nla Normal Cursor Keys CSIA CSIC CSID CSIB CSIH Application Cursor Keys SS3A SS3C SS3D SS3B SS3H 014-002111 Table 3·13 Keyboard Generated Codes 107-key Keyboard 1 101-key Keyboard nJa nJa n/a - (minus) , (comma) . (period) Num Lock / * - + VT320/100 Keyboard and Numeric Mode with Num Lock On On / * - (minus) , (comma) . (period) 1 2 3 4 .!Oelete 011 nse rt 1!End 210ownarrow 3/Pg On 4/Leftarrow 1 2 3 4 5 5 5 6 7 B 9 Enter3 6/Rightarrow 7/Home 8/Uparrow 9/Pg Up Enter 6 7 0 Numeric Keypad (VT320 and VT100) 0 8 9 Enter3 Application Mode with Num Lock On On none none SS3 m SS31 SS3 n SS3p SS3q SS3 r SS3 s SS3t SS3 u SS3v SS3w SS3x SS3y SS3 M n/a2 Num Lock Off Off / * , Select Find Previous Screen Cursor Down Next Screen Cursor Left Home Cursor Right Insert Here Cursor Up Remove Enter 1 107-key keyboards numeric keypads have no Num Lock On/Off mode. 2 Neither Numeric Mode nor Application Mode have any bearing when Num Lock is Off. 3 Will send either a CR or a CR-LF depending upon the state of New Line Mode (LNM). Character Sets All terminals are equipped with a 512--character Character Generator (CGEN), which is located within terminal ROM. All hard character sets are composed of characters contained within the CGEN. In addition to the predefined hard character sets, the VT320 emulation on the D463 supports up to two soft character sets (each containing up to 96 characters), which reside in volatile RAM, that are composed of custom characters. Each of these two sets of custom characters are called downline loadable (DLL) character sets. The only terminal and emulation combination that supports soft character sets is the VT320 emulation on D463 terminals. Hard Character Sets Hard character sets are composed from characters located within the CGEN. Four character sets may be selected for use at one time. They are designated as GO, G1, G2, and G3. From these four, two character sets are active. These are designated as GL (Graphic Left) and GR (Graphic Right). The D217 has only two character sets available at one time. They are designated GO and G1. 014~02111 3-17 GL is generally used for 7-bit character codes (20 hex through 7F hex), character sets such as U.S. ASCII or an appropriate National Replacement Character (NRC) set. These NRC sets map national-language specific characters that are 8-bit codes onto the U.S. ASCII character set. This remapping process deletes least-used characters from the ASCII set and replaces those characters with frequently used 8-bit characters. Each NRC set is language-specific. The GR set is used for 8-bit character codes, which are characters AO hex through FF hex. GR generally contains special graphics sets such as Line Drawing or contains the Supplemental Graphics set, which is also known as the 8-bit character code portion of the VT Multinational Character Set. Character sets are initialized on power up. In multinational mode, GO and Glare initialized with the standard ASCII character set, and G2 and G3 are initialized with VT Multinational. The GO set is then invoked into GL, and the G2 set into GR (see ANSI document X3.41 for further information). On the D217, GO is initialized with U.S. ASCII; Gl is initialized with VT Special Graphics; and GO is invoked into GL. Hard character sets are used in a two step process. They must first be designated and then invoked. 3-18 014-002111 Designating Hard Character Sets Character sets are designated as GO, G 1, G2, or G3 by an escape sequence and a parameter, which are detailed in the "Hard Character Set Control Sequences" section later in this chapter. Invoking Hard Character Sets The GL character set is set to GO and G1, respectively, with the Shift In and Shift. Out commands for all the terminals. In addition to these two commands, because there are additional available sets on the D413ID463, GL is set to G2 and G3 by the Shift. Lock Two and Shift Lock Three commands. Redefining the GR set is limited to the D413/D463; additional shift lock commands set the GR set to G1, G2, or G3. Full information on the use of these commands is located in within the "Hard Character Set Control Sequences" section later in this chapter. Figure 3-1 illustrates which character sets can be invoked into GO through G3. Sets currently in use GL " .................. "" ............ ...... " ............ "" " / GO / / "" / / ............ /" / " ~G"'-1--. / I / I ...... Yo/ /1(. Active character sets 6 7-bit characters I ............ L.. I "I I I ...... I............ ...... ~ 8-bH characters \ \\ \ \ \ \ \ G ............ \ - - - - VT320 emulation only Figure 3-1 Invoking Character Sets into GL and GR (VT320 /100) 014-002111 3-19 Soft Character Sets It is possible to define up to 96 characters that may be downloaded as a character set; the VT320 emulation on the D463 supports two soft character sets. A soft character set resides in volatile RAM, and is lost when the terminal is given the command to reset or the power is turned off. Soft character sets must be selected, defined (custom characters created), and then downloaded to the terminal. Also, to clear up terminal RAM space, previously downloaded soft character sets that are no longer in use can be cleared from the terminal. Selecting Soft Character Sets Before a soft character set can be used, it must first be assigned a name. This name, or designation, is used to refer to the soft character set within character set control sequences. A maximum of three characters are used to name a soft character set. The first two characters are optional, and can be any combination of characters in the range of 20 hex to 2F hex. The final character is required and must be in the range of 30 hex to 7E hex. An example of a legitimate name for a soft character set is: @ Where is the space character (20 hex), and is in the range 20 hex to 2F hex, and "@" (40 hex) is the final character in the range 30 hex to 7E hex. This is the recommended default. Once a soft character set is named the characters within the set must then be defined. Defining a Soft Character Soft character cells must be created and defined as data before they can be downloaded as soft character sets to the terminal. The following steps outline the procedure for defining soft character fonts. 1. Define the character on a 10 x 12 matrix. In the following design example, the greek alpha symbol is being defined. CO CI C2 C3 C4 C5 C6 C7 C8 C9 RO RI R2 :it R3 :it :it R4 R5 R6 R7 R8 R9 :it 'it # :it :it # # # # RIO Rll 3-20 014-002111 2. Divide the character cell between the sixth and seventh row to create two sets of six (6 bit) patterns. CO CI C2 C3 C4 C5 C6 C7 C8 C9 RO RI # R2 # R3 R4 # 4/: # # # R5 * # R6 R7 # # R8 R9 RIO Rll # # # # # # # 3. Generate a string of binary numbers for the upper section ofthe character cell by reading each column from bottom to top, assigning a 1 if a pixel is on, and a 0 if the pixel is off. Start with column CO and end with column C9. Please note, order must be preserved throughout the remaining steps. By applying this method to the design example, you generate the binary numbers 100000,010000,001000, 001000,010000, 100000,010000,001000, 000100, and 000000. 4. Generate a string of binary numbers for the lower half of the character cell by following the process described in step 3. Remember that you begin at the bottom of the column. This yields the binary numbers 000001, 000010, 000100, 000100, 000010, 000001, 000010, 000100, 001000, and 000000. 5. These binary numbers must now be extended to form 8-bit binary numbers. This is done by prefIxing all of the 6-bit numbers with 01. 6. Convert the 8-bit binary numbers to their hexadecimal equivalent values. This is done by dividing the 8-bit numbers into two groups of 4-bits each, and finding the hex equivalent for each of those 4-bit groups. 7. Subtract 1 (01 hex) from each hex number generated in Step 6. 8. Convert each hex number into its equivalent 7-bit ASCII character. 014-002111 3-21 9. Arrange the hex data strings into a sixel bit pattern such that data for the top portion of the character cell is first, followed by the "f' character, and completed with data for the bottom portion of the cell. The pixel generated from the alpha character in our example is: The example below illustrates Steps 6, 7, and 8. Where bits 7 and 6 are fixed as · · · # . . . . . . . #. . # # . . . # .. # .. # . # .. . .... # ... . 01. 7654 3210 0100 0100 0100 0101 0110 0101 0100 0100 0101 0110 0000 = 40 H - 1 H = 3F H = ? 0100 = 44 H - 1 H = 43 H = C 1000 = 48 H -1 H = 47 H = G 0000 = 50 H - 1 H =4F H = 0 0000 = 60 H - 1 H = 5F H = _ 0000 = 50 H - 1 H = 4F H = 0 1000=48H-1 H=47H=G 1000=48H-1 H=47H=G 0000 = 50 H - 1 H = 4F H = 0 0000 = 60 H - 1 H = 5F H = # .... # ... . · # .. # . # .. . · . # # . . . # .. . . . . . . . # . 3-22 Where bits 7 and 6 are fixed as 01 . 7654 3210 0100 0100 0100 0100 0100 0100 0100 0100 0100 0100 0000 = 40 H - 1 H = 3F H = ? 1000 = 48 H -1 H = 47 H = G 0100 = 44 H - 1 H = 43 H = C 0010=42H-1 H=41 H=A 0001= 41 H -1 H = 40 H = @ 0010=42H-1 H=41 H=A 0100 = 44 H - 1 H =43 H = C 0100 = 44 H -1 H = 43 H = C 0010=42H-1 H=41 H=A 0001 = 41 H - 1 H = 40 H = @ 014-002111 Downloading Soft Characters Soft character sets are downloaded to the terminal by a device control string. Refer to the "Soft Character Set Control Sequences" section later in this chapter, for details on this process. Clearing Downloaded Soft Character Sets The control sequence for downloading a character set can also be used to clear a set that has been previously loaded. Refer to the "Soft Character Set Control Sequences" section for details on this process. ANSI Standard Mode Switches ANSI standard mode parameters are loosely defined by the appropriate ANSI document. The Set Mode and Reset Mode control sequences cause a set of operating parameters on the terminal to be set or reset. The «ANSI Standard Mode Control Sequences" section, later in this chapter, has full details of the parameters mentioned in the indented lists below. Table 3-14 shows the default powerup setting for ANSI standard mode parameters. Table 3-14 Default ANSI Standard Mode Parameters ANSI Parameter Default Setting Keyboard action Reset InserVReplace Reset Senc:l/Receive Set Line feec:l/New line Reset Any of the following ANSI standard mode operating parameters are set with the Set Mode command: Keyboard Action - Disables the keyboard, turns on the "wait" LED, and prevents further data entry from the keyboard. InsertlReplace - Causes new characters to be inserted at the active position and moves all following characters right one position. SendlReceive - Transmits characters typed at the keyboard directly through the serial output port; the terminal displays only characters received from the serial port. Line FeedlN'ew Line - Lets the Line Feed command trigger a line feed (LF) operation followed by a carriage return (CR). Also causes the New Line key to send the sequence CR-LF. 014-002111 3-23 Any of the following ANSI standard modes are selected with the Reset Mode control sequence: Keyboard Action - Enables the keyboard as an input device. InsertJReplace - Causes a new character received by the terminal to "overwrite" or replace an existing character at the active position. SendlReceive - Displays characters typed at the keyboard on the screen and also transmits the characters through the serial port. Line FeedlNew Line - Limits a Line Feed command to vertical movement only, with respect to the current active position. Also causes the New Line key to send only a CR. 3-24 014-002111 ANSI Private Mode Switches The Private Set Mode and Private Reset Mode control sequences cause a set of operating parameters on the terminal to be set or reset. The "ANSI Private Mode Control Sequences" section, later in this chapter, has full details of the parameters mentioned in the indented lists below. Table 3-15 shows the powerup default states for the ANSI private mode parameters. Table 3-15 Default ANSI Private Mode Parameters Private Parameter 01~02111 Default Setting Cursor key application Reset Column Reset Scrolling Reset Screen Reset Cursor origin Reset Auto wrap Reset Auto repeat Reset Print form feed Reset Print extent Set Text cursor Set Multi/national character set Reset Numeric keypad Reset Typewriter/data processing keys Permanently Reset PC terminal Reset Backarrow key Reset 3-25 Any of the following ANSI private mode parameters are selected with the Private Set Mode control sequence: Cursor Key Application - Causes the four cursor-control keys to transmit special predefined codes instead of the standard ANSI cursor control sequences. These special codes that are transmitted can then be used for application-specific tasks. Column - Defines a maximum of 132 columns that can appear on the screen. When this function is used, the screen is erased and the cursor is moved to the home position. Scrolling - Enables smooth scrolling at a maximum rate of 6 lines per second. Screen - Displays characters in black against an illuminated background (reverse video). Cursor Origin - Defines the origin or cursor-home to be the upper left character position of the current margin setting. Line numbers are relative to the current margin settings and the top line of the margin is referenced as line one. Cursor control sequences can not go beyond the current margin settings. Auto Wrap - Characters received when the cursor is already at the right margin cause the cursor to move to the beginning of the next line. Cursor control sequences never wrap. Auto Repeat - All normal typematic keys repeat when held down for more than one-half second. Repeating stops when the key is released. Print Form Feed - Selects Form Feed to follow screen print commands. Print Extent - Allows the entire screen to be printed during a print screen operation. Text Cursor Enable - Displays the cursor. MultilNational Character Set - Selects National mode, which allows the use of the 7-bit National Replacement Character Sets (NRC). Keypad Application - Causes the numeric keypad to transmit alternate sequences. Any of the following ANSI private mode operating parameters are selected with the Private Reset Mode control sequence: Cursor Key Application - Causes the cursor-control keys to return standard ANSI cursor-control sequences. Column - Allows a maximum of 80 columns to appear on the screen. When this function is used, the screen is erased and the cursor is moved to the home position. Scrolling - Allows a scroll operation to jump in increments of one line. Screen - Illuminates graphic characters against a black background. Cursor Origin - Defines the origin or cursor-home to be at the upper left comer-position of the screen. When in the reset condition, the cursor addressing commands CUP and HVP can position the cursor anywhere on the screen regardless of the margins that have been set. 3-26 014-002111 Auto Wrap - Any characters received while the cursor is at the right margin replace the existing character and the cursor does not move. Auto Repeat - No keys will repeat without first pressing the Rept key. Print Form Feed - No Form Feed is performed at the end of a print operation. Print Extent - Allows printing of the current scrolling region only (defined by Set Margins). Text Cursor Enable - Cursor is not displayed. MultiJNational Character Set - Selects Multinational mode for the keyboard, which allows the use of the Supplemental Character Set for 8-bit characters (GR), and the ASCII character set for 7-bit characters (GL). Keypad Application - Causes the numeric keypad to operate in numeric mode. User-Defined Keys Function keys F6 to F20 may be programmed with user-definable key sequences. A total of 255 bytes of volatile RAM is available for key definitions and one key sequence may use up all or most of the available memory if desired. The control sequence that downloads user-def'ined keys is covered in more detail in the "User-Defined Key Control Sequences" section later in this chapter. You can also program keys using the Configuration Menu. For information on using the Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. Character Attributes Character attributes affect either the appearance of text on the screen or affect how text on the screen. can be erased. Visual character attributes, set with the Select Graphic Rendition control sequence, include the following: • Bold (or increased intensity) text • Underscored text • Blinking text • Reverse video text The only non-visual character attribute is text protection, which is set with the Select Character Attributes control sequence. Protected text is not erased by either of the Selective Erase control sequences. 014-002111 3-27 Line Attributes Examples of double-height and double-width characters are shown in Figure 3-2. Single-height lines Double-height lines B B B Double-width line Single-width line BBBB BB BB Figure 3-2 Examples of Double-Height and. Double-Width Lines A double-height line is created by designating one character row as the top half and the next lower row as the bottom of the line. Although there is no software requirement, to be readable both rows should contain the same character. Lines that have been expanded by either control sequence lose all characters to the right of the center of the screen. Both double-height and double-width line attributes affect only the current cursor row. There is no command to make characters double-high but not double-wide. End of Section 3-28 014-002111 VT320/100 Emulation Control Sequences This section describes the format and usage of VT320/100 control sequences. Refer to the "Summary ofVT320/100 Operations" section for an explanation of conventions and practices of the VT320/100' emulation. The control sequences within this section are organized into the functional areas listed below: Hard Character Set Control Sequences Soft Character Set Control Sequences Attribute Control Sequence Cursor Positioning Control Sequences Tabulation Control Sequences Screen Editing Control Sequences ANSI Standard Mode Control Sequences ANSI Private Mode Control Sequences Transmission Control Sequences User-Defined Key Control Sequences Miscellaneous Control Sequences Reporting Control Sequences Printing Control Sequences Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and various VT320/100 emulator reference material is covered in appendices. 014-002111 3-29 Format of Control Sequence Listings in this Section Applicable terminals Control sequence name and mnemon~ I all terminals CUrsor Up (CUU) Control - - - - - CSI A sequence format (do not include spaces.~ where' Description of control sequence arguments, if any ~ specifies how many lines to move the cursor Moves the cursor up one or more lines in the same column. If the requested movement ~ Usage and results of control sequence would place the cursor oft' of the screen (or out of the scrolling region, if set), the command is terminated when the cursor reaches that boundary. . / See ANSI document X3.64, section 5.17. Applicable /' ANSI document A Note on Syntax Conventions We established a set of general syntax rules that are used wherever references occur to VT320/100 control sequences. These rules, listed below, provide a uniform method of documenting VT320/100 control sequences. • In control sequences, 7-bit and 8-bit control codes are represented by ANSI mnemonics. • Remaining hex codes in control sequences are represented by printable ASCII characters. • Nonprintable ASCII characters in control sequences are represented in capital letters and are enclosed within angle brackets « ». For example, the space character is . • Spaces between characters in control sequences are provided to improve clarity only. If a space character is part of a control sequence, it will be indicated as . • Control sequence parameters, when possible; are illustrated With labels or abbreviations that indicate the nature or use of the parameter. These labels, always in lower case type, are enclosed within angie brackets to indicate that they are not to be taken literally. Examples of parameter forms are: , , or . 3-30 014-002111 Hard Character Set Control Sequences Before character sets can be used, they must be designated into one of the four available character sets: GO, G1, G2, and G3. From these four available sets, .two sets are active, that is have been invoked into the Graphic Left (GL) and Graphic Right (GR) sets. GL is for 7-bit characters and GR is for B-hit characters. Sequences for Designating Character Sets Character sets are designated as GO, G1, G2, or G3 by an escape sequence and a parameter, as shown below: ESC «set> ESC) ESC- ESC * ESC. ESC + ESC/ (lB 28 hex) (lB 29 hex) (lB 2D hex) (IB 2Ahex) (lB 2E hex) (IB 2B hex) (lB 2F hex) designates a character set to be the GO set designates a 94-character set to be the Gl set designates a 96--character set to be the Gl set designates a 94--character set to be the G2 set (VT320) designates a 96-character set to be the G2 set (VT320) designates a 94--character set to be the G3 set (VT320) designates a 96--character set to be the G3 set (VT320) where is a code that specifies a character set. The possible choices for hard character sets, and the code to designate them, are shown below. B U. S. ASCII (North American) A NRC United Kingdom Cor5 NRC Finnish Ror9 NRC French Q NRC French Canadian K NRC German Eor6or' %5 Supplemental graphics (from VT Multinational) 0 Special graphics DG International 2 DG Word Processing NRC Danish/Norwegian 3 DG Une Drawing Z NRC Spanish 4 DG Special Graphics Hor7 NRC Swedish Downline Loadable soft NRC Swiss Kata Kana G1 J NRC Kata Kana GO character set See the section < VT User-Preferred Supplemental Graphics (ISO or VT Supplemental selected by command) chapter for more information. 014-002111 ·Soft Character Sets" in this (VT320 emulation on D4630nly) 3-31 NOTE: The NRC selections will only give you your current keyboard language. For example, it is not possible to ask for a British NRC set if your keyboard language is North American. This is an emulation of a VT220 feature. The G1, G2, and G3 set may contain either 94 or 96 characters. A new feature for all terminals is available whenever you select the Supplemental Graphics set (from VTlMultinational). You have the option of either leaving the Supplemental Graphics set exactly as it appears in the VT Multinational character set, or you can select the Supplemental Graphics set to be ISO Latin-1 (8859/1.2). The control sequence to change the Supplemental Graphics set to ISO Latin is described below. Assign User-Preferred Supplemental Set (AUPSS) DCS ! u ST 90 21 75 9C IB 50 21 75 IB 5C 0413/0463 (8-bit hex) (7-bithex) where and have the following values: o %5 1 A supplemental graphics set is DEC Multinational supplemental graphics set is ISO Latin-l (8859/1.2) Sets the character set that will be used when Supplemental Graphics (from the VTlMultinational set) is designated. Sequences for Invoking Character Sets Shift In (51) all terminals S1 OF C7-bit hex) Sets GL to point to GO (default). See ANSI document X3.41, section 5.2. all terminals Shift Out (SO) SO OE (7-bit hex) Sets GL to point to G1. See ANSI document X3.41, section 5.2. 3-32 014-{)02111 Shift Lock Two (SL2) 0413/0463 ESC n IB 6E (7-bit hex) Sets GL to point to G2. Shift Lock Three (SL3) ESC 0413/0463 0 IB 6F (7-hit hex) Sets GL to point to G3. Shift Lock G1 GR 0413/0463 ESC IB 7E (7-hit hex) Sets GR to point to G1. Shift Lock G2 GR D413/0463 ESC } IB 7D (7-bit hex) Sets GR to point to G2. 0413/0463 Shift Lock G3 GR ESC I IB 7C (7-bit hex) Sets GR to point to G3. 014-002111 ~3 Single Shift Two (SS2) SS2 or ESC N BE 1B 4E 0413/0463 (B-bit hex) (7-bit hex) Displays the next character received from the G2 set, regardless of the state of GL and GR. See ANSI document X3.64, section 5.85. Single Shift Three (SS3) D413/0463 SS3 or ESC 0 BF 1B 4F (B-bit hex) (7-bit hex) Displays the next character received from the G3 set, regardless of the state of GL and GR. See ANSI document X3.64, section 5.86. 3-34 014-002111 Soft Character Set Control Sequences Sequences for Downloading Soft Characters (VT320 on 0463) Des :;;:::; { Dses ;: ••. : ST 90 3B 3B 3B 3B 3B 3B 3B 7B Dses 3B 3B ••• 3B ge (8-bithex) IB 50 3B 3B 3B 3B 3B 3B 3B 7B Dscs 3B 3B ... 3B IB 5e (7-bithex) where specifies which font buffer (character set) to load (0 or 1). The DEC VT320 terminal has only one set available, and both 0 and 1 refer to the same character set. The 0463 terminal has two character sets available to load. specifies the starting location in the font buffer (character offset - from 0 to 95). A value of 0 begins the new character set at character code 20 hex. specifies the erasure mode, where: erases all characters in the font buffer before loading in new ones (default) 1 erases only character locations being loaded with new definitions 2 erases all font buffers (soft character sets) is the character cell size, where: o 15 pixels wide in 80 column rendition, 9 pixels wide in 132 column rendition 1 illegal, and defaults to 0 2 5xl0 pixel cell 3 6xl0 pixel cell 4 7xl0 pixel cell 5 5 pixels wide o 15 15 pixels wide NOTE: 01~02111 Any cell width above 10 defaults to 10. is the screen width, where: o or 1 is 80 column (0 is default) 2 132 column 3-35 is the type of characters to be defined, where: o or 1 is text (pixels are centered in cell) 2 graphics (left aligned within cell) is the cell height, where: o 12 pixels high 1 1 pixel high 2 2 pixels high 12 12 pixels high is the size of the character set o 94 characters (VT220 compatible) 1 96 characters (allows redefinition of characters 20 hex and 7F hex) is a character set name (same as in the VT320) are DEC sixel bit-patterns (same as in the VT320) DCS marks the beginning of the control sequence and ST terminates the control string. The new features in this control sequence are the expanded definition of «Pcms> in the VT320), , and , as well as the new parameters and . The VT320 does not allow a character set defined in 80 column mode to be displayed in 132 column mode and vice versa because the font widths are different. Also, the VT220 would not automatically center characters in the cell. This feature allows future programs and terminals to be relatively independent of the character cell width for most non-graphics applications. Refer to the "Character Sets" section earlier in this chapter for information on defining soft characters. Sequences for Clearing Downloaded Soft Character Sets DCS i .{ ST 90 3B 7B 9C 1B 50 3B 7B lB 5C (8-bit hex) (7-bit hex) where 3-36 specifies which font buffer (character set) to clear (0 or 1). The DEC VT320 terminal has only one set available, and both 0 and 1 refer to the same character set. specifies the erasure mode, where: erases all characters in the font buffer 2 erases all font buffers (soft character sets) o 014-002111 Des marks the beginning of the control sequence and ST terminates the control string. The code is the designated name of the soft character set that you will clear by this control sequence. Attribute Control Sequences Line Attribute Sequences Line Attribute control sequences apply to all terminals. To designate the current cursor row as the top row of a double-heightldouble-width line, use the escape sequence: ESC f 3 1B 23 33 (7~ithex) To designate the current cursor row as the bottom row of a double-heightldouble-width line, use the escape sequence: ESC f 4 1B 23 34 C7-bit hex) To designate the current cursor row as a single-heightldouble-width line, use the escape sequence: ESC :It 6 1B 23 36 (7~ithex) To return the current cursor row to a single-widthlsingle-height line, use the escape sequence: ESC *' 5 1B 23 35 014-002111 (7~ithex) 3-37 Character Attribute Sequences Select Graphic Rendition (SGR) CSI ; ... ; m 9B 3B ... 3B 6D 1B 5B 3B ... 3B 6D all terminals (8-bit hex) (7-bit hex) where determines visual character attributes, as determined by the list below: o turns off all visual attributes 1 displays bold or at increased intensity 4 turns underscore on 5 turns blink on 7 turns reverse video on 22 displays at normal intensity (VT320 only) 24 turns underscore off (VT320 only) 25 turns blink off (VT320 only) 27 turns reverse video off (VT320 only) Changes one or more visual attributes for successive characters in the data stream according to the parameter values. Visual attributes not specified in the parameter string are turned off. Ifno parameters are supplied with the control sequence, then all attributes for subsequent characters are turned off. See ANSI documentX3.64, section 5.77. Select Character Attributes (SCA) CSI " q 9B 22 71 lB 5B 22 71 D4131D463 (8-bit hex) (7-bit hex) where determines text erasure, according to the list below: o same as 2, below 1 subsequent characters are not erasable (protected) 2 subsequent characters are erasable (unprotected) This control sequence selects aU subsequent characters displayed to be erasable or not erasable with regard to Selective Erase In Line (SEL) and Selective Erase In Display (SED) control sequences. 3-38 014-002111 Cursor Positioning Control Sequences Parameters listed in this section are optional. If you do not specify a parameter or specify it as 0, then it will be treated as 1. Cursor Up (CUU) CSI A 9B 41 IB 5B 41 all terminals (8-bithex) (7-bit hex) where is a whole number that specifies how many lines to move the cursor Moves the cursor up one or more lines in the same column. If the requested movement would place the cursor off the screen (or out of the scrolling region, if set), the control sequence is terminated when the cursor reaches that boundary. See ANSI document X3.64, section 5.17. Cursor Down (CUD) CSI B 9B 42 IB 5B 42 all terminals (8-bit hex) (7-bithex) where dines> is a whole number that specifies how many lines to move the cursor Moves the cursor down one or more lines in the same column. If the requested movement places the cursor off the screen (or out of the scrolling region, if set), the control sequence is terminated when the cursor reaches that boundary. See ANSI document X3.64, section 5.14. 014-002111 3-39 Cursor Forward (CUF) CSI C 9B 43 lB 5B 43 all terminals (8-bithex) (7-bithex) where is a whole number that specifies how many columns to move the cursor Moves the cursor to the right one or more columns in the same row. If the requested movement places the cursor off the screen, the control sequence is terminated when the cursor reaches the right margin. Auto-wrap mode is ignored. See ANSI document X3.64, section 5.15. Cursor Backward (CUB) CSI D 9B 44 lB 5B 44 all terminals (8-bithex) (7-bithex) where is a whole number that specifies how many columns to move the cursor Moves the cursor to the left one or more columns in the same row. If the requested movement places the cursor off the screen, the control sequence terminates when the cursor reaches the left margin. See ANSI document X3.64, section 5.13. Cursor Position (CUP) CSI ; H 9B 3B 48 lB 5B 3B 48 all terminals (8-bit hex) (7-bit hex) where is from 1 through 24, with the number 1 representing the top line of the screen is from 1 to 80 (or 1 through 132, depending upon whether normal or compressed characters) are displayed, with the number 1 representing the left most column on the screen. Moves the cursor to the specified line and column. Parameter values greater than the ranges specified causes the cursor to peg at the nearest reasonable position. The parameters are relative to the upper left corner of the scrolling region if Cursor Origin mode is set. See ANSI document X3.64, section 5.16. 3-40 014-002111 Horizontal and Vertical Position (HVP) CSI ; f 9B 3B 66 1B 5B 3B 66 all terminals (8-bit hex) (7-bit hex) where is a line number from 1 through 24, with the number 1 representing the top line of the screen is a column number from 1 to 80 (or 1 through 132, depending upon normal or compressed characters), with the number 1 representing the left most column on the screen. Moves the cursor to the specified line (vertical position) and column (horizontal position). Parameter values greater than the ranges specified causes the cursor to peg at the nearest reasonable position. The parameters are relative to the upper left comer of the scrolling region if Cursor Origin mode is set. See ANSI document X3.64, section 5.47. NOTE: This command is functionally the same as the Cursor Position command. all terminals Index (INO) IND or ESC D 84 1B 44 (8-bit hex) (7-bithex) Causes the cursor to move downward one line without changing the column position. If the cursor is at the bottom margin, the screen scrolls up. See ANSI document X3.64, section 5.50. Tab all terminals 09 Advances the cursor to the next tab stop to the right ofthe current cursor position. Ifno additional tab stops are defined to the right of the current cursor position, then the cursor advances to the last screen column. Use the Set Horizontal Tab (HTS) and Clear Tap Stops (TBC) commands to change the tab stops. You can also use the Answerback and Tabs Menu to change the tab stops as described in the Installing and Operating Your D216E, D217, D413, and D463 Display Terminals manual 01~02111 3-41 Reverse Index {RI} all terminals RI or ESC M (8-bithex) (7-bithex) 8D lB 4D Moves the cursor up one line maintaining the same column position. If the cursor is at the top margin, the screen scrolls down. See ANSI document X3.64, section 5.71. Next Line (NEL) all terminals NEL or ESC E 85 lB 45 (8-bit hex) (7-bit hex) Moves the cursor to the first position on the next line down. If the cursor is already at the bottom margin, the screen scrolls up. See ANSI document X3.64, section 5.59. Save Cursor (SC) ESC 7 lB 37 all terminals (hex) Saves the following information in terminal memory: Cursor position State of graphic rendition Character set shift state Wrap flag state State of origin mode State of selective erase attribute Restore Cursor (RC) ESC 8 lB 38 all terminals (hex) Restores the information saved by the Save Cursor control sequence. If the Save Cursor control sequence was not used before this control sequence is issued, the terminal resets to its default condition, and the cursor moves to Home. 3-42 014-002111 Tabulation Control Sequences Set Horizontal Tab (HTS) HTS or ESC H 88 1B 48 all terminals (8-bit hex) (7-bit hex) Sets a horizontal tab at the current cursor column. See ANSI document X3.64, section 5.46. Clear Tab Stops (TSC) CSI g 9B 67 1B 5B 67 all terminals (8-bit hex) (7-bit hex) Where specifies which tab stops to clear, according to the following list: o clears a horizontal tab stop at the cursor position 3 clears all horizontal tab stops Clears one or more tab stops. The parameter supplied with this control sequence determines the mode in which tabs are cleared. If no parameter is specified, a parameter value of 0 is used. See ANSI document X3.64, section 5.91. 014-002111 3-43 Screen Editing Control Sequences 0413/0463 Oelete Character (OCH) CSI <# of chars> P 9B <# of chars> 50 lB 5B <# of chars> 50 (8-bit hex) (7-bit hex) where <# of chars> is the number of characters to delete; the default value when no parameter is present is 1. Deletes one or more characters starting at the cursor position. Characters to the right of the deleted area, if any, are moved left to the current cursor position to fill the void created by the deletion. Characters can be deleted from the current cursor position to the end of the current line. See ANSI document X3.64, section 5.21. 0413/0463 Insert Character (ICH) CSI <# of chars> @ 9B <# of chars> 40 lB 5B <# of chars> 40 (8-bit hex) (7-bit hex) where <# of chars> is the number of character spaces to insert; the default value when no parameter is present is 1. Inserts one or more erased characters (spaces) to the right, starting at the current cursor position. Characters at the cursor position and to the right of the cursor are scrolled right. Characters that are scrolled off the screen are lost. See ANSI document X3.64, section 5.48. 3-44 014-002111 0413/0463 Insert Line (IL) CSI <# of lines> L 9B <# of lines> 4C 1B 5B <# of lines> 4C (B-bithex) (7-bithex) where <# of lines> is the number of blank lines to insert; the default value when no parameter is present is 1. Inserts one or more blank lines in the current scrolling region starting at the line the cursor is on. Lines at and below the cursor are shifted down. See ANSI document X3.64, section 5.49. 0413/0463 Oelete Line (OL) CSI <# of lines> M 9B <# of lines> 4D 1B 5B <# of lines> 4D (8-bithex) (7-bithex) where <# of lines> is the number oflines to delete; the default value when no parameter is present is 1. Deletes one or more lines starting at the current line the cursor is on, and successive lines below. Lines are deleted only in the current scrolling region, and any lines left below the deleted rows are scrolled up; blank lines are inserted as required. See ANSI document X3.64, section 5.23. Erase Character (ECH) CSI <# of chars> X 9B <# of chars> 58 1B 5B <# of chars> 58 D413/D463 (8-bithex) (7-bithex) where <# of chars> is the number of characters to erase; the default value when no parameter is present is 1. Erases the specified number of characters on a line starting at, and including, the cursor position. See ANSI document X3.64, section 5.28. 014-002111 3-45 Erase In Line (EL) all terminals CSI K 9B 4B IB SB 4B (8--bit hex) (7-bit hex) where specifies what portion of the line to erase, according to the following list: erases from the cursor to the end of the current line. This is the default if no parameter is specified. 1 erases from the first character on the line to the cursor position, inclusive. 2 erases the entire line. o Erases displayed characters on the current line. The cursor position is not changed. See ANSI document X3.64, section 5.31. all terminals Erase In Display (ED) CSI J 9B 4A IB SB 4A (8-bit hex) (7--bit hex) where specifies what portion of the screen to erase, according to the following list: erases from the cursor to the end of the screen. This is the default if no parameter is specified. 1 erases from the beginning of the screen to the cursor position, inclusive. 2 erases the entire screen. o Erases displayed characters. The cursor position is not changed. See ANSI document X3.64, section 5.29. 3-46 014--002111 Selective Erase In Line (DECSEL) CSI ? K 9B 3F 4B 1B 58 3F 4B 0413/0463 (B-bit hex) (7-bit hex) where specifies what portion of erasable characters to erase in a line: erases all erasable characters from the cursor to the end of the current line.This is the default if no parameter is specified. 1 erases all erasable characters from the beginning of the line to the current cursor position, inclusive. 2 erases all erasable characters on the entire line. o Erases characters that have been designated as erasable with the Select Character Attributes control sequence. Selective Erase In Display (DECSEO) CSI ? J 9B 3F 4A 1B 58 3F 4A 0413/0463 (8-bit hex) (7-bit hex) where specifies what portion of erasable characters to erase on the screen: o erases all erasable characters from the current cursor position to the end of the screen. This is the default if no parameter is specified. 1 erases all erasable characters beginning from the beginning of the screen to the cursor position inclusive. 2 erases all erasable characters on the entire screen. Erases characters that have been designated as erasable with the Select Character Attributes control sequence. 014-002111 3-47 Scroll Down (SO) all terminals CSI T 9B 54 lB 5B 54 (8-bit hex) (7-bit hex) where specifies the number oflines to scroll on the screen: Scrolls the screen contents down. all terminals Scroll Up (SU) CSI S 9B 53 lB 5B 53 (8-bit hex) (7-bit hex) where specifies the number of lines to scroll on the screen: Scrolls the screen contents up. 3-48 014-002111 ANSI Standard Mode Control Sequences Set Mode and Reset Mode are control sequences that cause one or more standard modes to be set or reset within the terminal. See "ANSI Standard Mode Parameters," for details on the mode parameters. Set Mode (SM) all terminals CSI h 9B 68 1B 5B 68 (8-bithex) (7-bithex) where determines which mode will be set: 2 (32 hex) sets Keyboard Action mode 4 (34 hex) sets InsertlReplace mode 12 (3132 hex) sets SendlReceive mode 20 (3230 hex) sets Line FeedlNew Line mode Several mode parameters can be set in one operation by using a string in the following format: CSI ; ; ... ; h See ANSI document X3.64, section 5.79. Reset Mode (RM) all terminals CSI 1 9B 6C 1B 5B 6C (8-bithex) (7-bit hex) where determines which mode will be reset: 2 (32 hex) resets Keyboard Action mode 4 (34 hex) resets InsertlReplace mode 12 (3132 hex) resets SendIReceive mode 20 (32 30 hex) resets Line Feed/New Line mode Several mode parameters can be reset in one operation by using a string in the following format: CSI ; ; ... ; 1 014-002111 3-49 See ANSI document X3.64, section 5.73. ANSI Standard Mode Parameters Keyboard Action Mode (KAM) CSI 2 h 9B 32 68 1B 5B 32 68 CSI 2 1 9B 32 6C 1B 5B 32 6C all terminals to set (8-bit hex) (7-bit hex) to reset (default) (8-bit hex) (7-bit hex) The reset state of this parameter enables the keyboard as an input device. The set state disables the keyboard, tums on the wait LED, and prevents further data entry. See ANSI document X3.64, section 5.54. Insert/Replace Mode (IRM) D413/D463 CSI 4 h 9B 34 68 1B 58 34 68 to set (8-bithex) (7-bithex) CSI 4 1 9B 34 6C 1B 58 34 6C to reset (default) (8-bithex) (7-bit hex) This parameter determines the insert or replace mode for new graphic characters placed on the video display. Reset Mode causes a new character to overwrite or replace an existing one at the active position. Set Mode causes new characters to be inserted at the active position and moves all following characters one position to the right. See ANSI document X3.64, section 5.52. 3-50 014-002111 Send/Receive Mode (SRM) all terminals CSI 12 h 9B 31 32 68 lB 5B 31 32 68 to set (default) (8-bit hex) (7-bit hex) CSI 12 1 9B 31 32 6C lB 5B 31 32 6C to reset (8--bit hex) (7-bit hex) The Send-Receive parameter controls the function oflocal echoing of characters to the video display. In Set Mode, characters typed at the keyboard are transmitted directly through the serial output port; only received characters from the serial port are made visible. In Reset Mode, characters typed at the keyboard are made visible on the screen and are also transmitted through the serial port. See ANSI document X3.64, section 5.83. Line Feed/New Line Mode (LNM) CSI 20 h 9B 32 30 68 IB SB 32 30 68 to set (8--bit hex) (7-bit hex) CSI 20 1 9B 32 30 6C lB SB 32 30 6C to reset (default) (8--bit hex) (7-bit hex) all terminals This parameter controls the interpretation of the Line Feed control sequence and the keyboard. In the reset state, a Line Feed implies only vertical movement with respect to the current active position and the New Line key produces only a CR. The set state causes the Line Feed to trigger a Line Feed operation followed by a CR and the New Line key to send the sequence CR-LF. See ANSI document X3.64, section 5.55. 014-002111 3-51 ANSI Private Mode Control Sequences Private Set Mode and Private Reset Mode are ANSI private control sequences that set or reset one or more ANSI private operating modes within the terminal. See section "ANSI Private Operating Mode Parameters," which follows, for details on the mode parameters. all terminals Private Set Mode (EXSM) CSI ? h 9B 3F 68 1B 5B 3F 68 (~ithex) (7-bithex) where determines which private mode will be set: (31 hex) 1 sets Application/ANSI Cursor Keys mode (32 hex) 2 sets ANSI mode (33 hex) sets Column mode 3 (34 hex) 4 sets Scrolling mode (35 hex) sets Screen mode 5 (36 hex) sets Cursor Origin mode 6 (37 hex) sets Auto Wrap mode 7 (38 hex) sets Auto Repeat mode 8 18 (3138 hex) sets Print Form Feed mode 19 (3139 hex) sets Print Extent mode 25 (3235 hex) sets Text Cursor Enable mode 42 (3432 hex) sets MultiINational Character Set mode 66 (3636 hex) sets Numeric Keypad mode 67 (3637 hex) sets Backarrow Key mode 68 (3638 hex) sets TypewriterlData Processing Keys mode 99 3939 hex) sets PCTERM mode Several mode parameters can be set in one operation by using a string in the following format: CSI ? ; ; ... ; h 3-52 014-002111 Private Reset Mode (EXRM) CSI ? 1 9B 3F 6C lB 5B 3F 6C all terminals (8-bit hex) (7-bit hex) where determines which private mode will be reset: (31 hex) 1 resets Application/ANSI Cursor Keys mode (32 hex) 2 resets ANSI mode (VT52) (33 hex) resets Column mode 3 (34 hex) 4 resets Scrolling mode (35 hex) resets Screen mode 5 (36 hex) resets Cursor Origin mode 6 (37 hex) 7 resets Auto Wrap mode (38 hex) resets Auto Repeat mode 8 18 (3138 hex) resets Print Form Feed mode 19 (3139 hex) resets Print Extent mode 25 (3235 hex) resets Text Cursor Enable mode 42 (3432 hex) resets MultiINational Character Set mode 66 (3636 hex) resets Numeric Keypad mode 67 (3637 hex) resets Backarrow Key mode 68 (3638 hex) resets Typewriter/Data Processing Keys mode 99 3939 hex) resets PCTERM mode Several mode parameters can be reset in one operation by using a string in the following format: CSI ? ; ; ... ; 1 014-002111 3-53 ANSI Private Operating Mode Parameters For additional information on ANSI private operating mode parameters, see ANSI document X3.64, section 3.5.6. Application/ANSI Cursor Keys Mode (ACKM) CSI ? 1 h 9B 3F 31 68 1B 5B 3F 31 68 to set (8-bit hex) (7-bit hex) CSI ? 1 1 9B 3F 31 6C 1B 5B 3F 31 6C to reset (default) all terminals (8-bit hex) (7-bit hex) With Cursor Key Application mode set, the four cursor control keys no longer transmit standard ANSI control sequences for cursor movement. Instead, special predefined codes are sent that can be interpreted by the user for various applications. For more information on application key codes, refer to the "Generated Keyboard Characters" section of this chapter. Reset Mode returns the ANSI control sequences to the cursor keys. 0413/0463 Column Mode (COlM) CSI ? 3 h 9B 3F 33 68 1B 5B 3F 33 68 to set (8-bit hex) (7-bit hex) CSI ? 3 1 9B 3F 33 6C 1B 5B 3F 33 6C to reset (default) (8-bit hex) (7-bit hex) The reset state allows a maximum of 80 columns to appear on the screen. The set state defines a maximum of 132 columns that can appear on the screen. When this function is used, the screen is erased and the cursor is moved to the Home position. 3-54 014-002111 Scrolling Mode (SCRLM) D413/D463 CSI ? 4 h 9B 3F 34 68 1B 5B 3F 34 68 to set (8-bit hex) (7-bit hex) CSI ? 4 1 9B 3F 34 6C 1B 5B 3F 34 6C to reset (default) (8-bit hex) (7-bit hex) The reset state allows a scroll operation to jump in increments of one whole line. The set state enables smooth scrolling at a maximum rate of 6 lines per second. Screen Mode (SCRNM) all terminals CSI ? 5 h 9B 3F 35 68 1B 5B 3F 35 68 to set (8-bit hex) (7-bit hex) CSI ? 5 1 9B 3F 35 6C 1B 5B 3F 35 6C to reset (default) (8-bit hex) (7-bithex) In the reset state, graphic characters are illuminated against a black background. When set, characters are displayed in black against an illuminated background (reverse video). Cursor Origin Mode (COM) all terminals CSI ? 6 h 9B 3F 36 68 1B 5B 3F 36 68 to set (8-bit hex) (7-bit hex) CSI ? 6 1 9B 3F 36 6C 1B 5B 3F 36 6C to reset (default) (8-bit hex) (7-bit hex) The reset state defines the origin, or Home, to be at the upper left comer position of the screen. When in the reset condition, the cursor-addressing control sequences Cursor Postition (CUP) and Horizontal and Vertical Position (HVP) can position the cursor anYwhere on the screen regardless of the margins that have been set. The set state defines the origin, or Home, to be the upper left character position of the current margin setting. Line numbers in Set Mode are relative to the current margin settings; the top line of the margin is referenced as line 1. Cursor control sequences cannot go beyond the current margin settings. 014-002111 3·55 all terminals Set to ANSI Mode CSI ? 2 h 9B 3F 32 68 1B 5B 3F 32 68 to set (8-bithex) (7-bit hex) CSI ? 2 1 9B 3F 32 6C 1B 5B 3F 32 6C to reset (8-bithex) (7-bithex) Reets tenninal to VT52 mode and sets all other modes to their saved configuration values or defaults. The set command is ignored. all terminals Auto Wrap Mode (AWM) CSI ? 7 h 9B 3F 37 68 1B 5B 3F 37 68 to set (8-bithex) (7-bit hex) CSI ? 7 1 9B 3F 37 6C 1B 5B 3F 37 6C to reset (default) (8-bit hex) (7-bit hex) If Auto Wrap mode is set, any characters received when the cursor is already at the right margin cause the cursor to move to the beginning of the next line. In Reset Mode, any character received while the cursor is at the right margin replaces the existing character and the cursor does not move. Cursor control sequences never wrap. 3-56 014-002111 Auto Repeat Mode (ARM) all terminals CSI ? 8 h 9B 3F 38 68 1B 5B 3F 38 68 to set (8-bit hex) (7-bit hex) CSI ? 8 1 9B 3F 38 6C 1B 5B 3F 38 6C to reset (default) (8-bit hex) (7-bit hex) In the reset state, no keys repeat without first pressing the Rept key. If Auto Repeat mode is set, all normal typematic keys repeat when held down for more than one-half second and will stop when the key is released. Print Form Feed Mode (PFF) all terminals CSI ? 18 h 9B 3F 31 38 68 1B 5B 3F 31 38 68 to set (8-bit hex) (7-bit hex) CSI ? 18 1 9B 3F 31 38 6C 1B 5B 3F 31 38 6C to reset (default) (8-bit hex) (7-bit hex) This mode, when set, will terminate a print operation with a Form Feed (FF) character. In the reset state, no Form Feed is performed at the end of a print operation. Print Extent Mode (PEXM) all terminals CSI ? 19 h 9B 3F 31 39 68 1B 5B 3F 31 39 68 to set (default) (8-bit hex) (7-bit hex) CSI ? 19 1 9B 3F 31 39 6C 1B 5B 3F 31 39 6C to reset (8-bit hex) (7-bit hex) Set Mode allows the entire screen to be printed during a print screen operation. Reset Mode allows printing of the current scrolling region only, as defined by Set Margins. 014-002111 3-57 Text Cursor Enable Mode (TCEM) CSI ? 25 h 9B 3F 32 35 68 IB 5B 3F 32 35 68 to set (default) (8-bithex) (7-bit hex) CSI ? 25 1 9B 3F 32 35 6C IB 5B 3F 32 35 6C to reset 0413/0463 (8-bit hex) (7-bithex) If set, the cursor is visible. If reset, the cursor is not displayed. Multi/National Character Set Mode (MNCSM) CSI ? 42 h 9B 3F 34 32 68 IB 5B 3F 34 32 68 to set (8-bithex) (7-bit hex) CSI ? 42 1 9B 3F 34 32 6C IB 5B 3F 34 32 6C to reset (default) 0413/0463 (8-bithex) (7-bit hex) The set state selects the National mode which allows the use of the 7-bit National Replacement Character (NRC) Sets. The reset state selects the Multinational mode, which allows the use of the Supplemental Character Set for 8-bit characters (GR), and the U.S. ASCII character set for 7-bit characters (GL). 0413/0463 Numeric Keypad Mode (NKM) CSI ? 66 h 9B 3F 36 36 68 IB 5B 3F 36 36 68 to set (8-bit hex) (7-bit hex) CSI '? 66 1 9B 3F 36 36 6C IB 5B 3F 36 36 6C to reset (default) (8-bit hex) (7-bithex) Operates the same as the older VT52 control sequences "ESC =" (lB 3D hex) and "ESC >" (lB 3E hex). This command extends the control sequence set to include the older VT52 control seqences. Refer to the "Generated Keyboard Codes" section of this chapter. 3-58 014-002111 Backarrow Key Mode (BKM) D413/0463 CSI ? 67 h 9B 3F 36 37 68 1B 5B 3F 36 37 68 to set (8-bit hex) (7-bit hex) CSI ? 67 1 9B 3F 36 37 6C 1B 5B 3F 36 37 6C to reset (default) (8-bit hex) (7-bit hex) Sets the code that the DEL key will send. If this mode is reset (the default condition). then the DEL key sends an ASCII DEL code (7F hex). If the mode is set. the DEL key sends an ASCII BS (Backspace) code (08 hex). Typewriter/Data Processing Keys Mode (KBUM) CSI ? 68 h 9B 3F 36 38 68 1B 5B 3F 36 38 68 to set (8-bit hex) (7-bithex) CSI ? 68 1 9B 3F 36 38 6C 1B 5B 3F 36 38 6C to reset (default) (8-bit hex) (7-bit hex) D413/0463 This mode was available in DEC's original VT220 only through a menu selection. Although the command exists in the VT320 emulation, it does nothing (it is permanently reset) because of different keyboard implementation. 0413/D463 Set Limited Transmit CSI ? 7 3 h 9B 3F 37 33 68 1B 5B 3F 37 33 68 to set (8-bit hex) (7-bit hex) CSI ? 731 9B 3F 37 33 6C 1B 5B 3F 37 33 6C to reset (default) (8-bithex) (7-bit hex) Causes the terminal to respond to AS (13 hex) sent by the host by stopping data transmission within 2 characters. The host can restart data transmission by sending AQ (11 hex) to the terminal. When this mode is reset, the terminal treats AS and AQ as data. You can also use the Communication Configuration menu to change the mode setting as described in the Installing and Operating Your D216E+, D217, D413, and D463 Display Terminal manual. 014-002111 3-59 PCTERM Mode all terminals CSI ? 99 h 9B 3F 39 39 68 1B 5B 3F 39 39 68 to set (8-bit hex) (7-bithex) CSI ? 99 1 9B 3F 39 39 6C 1B 5B 3F 39 39 6C to reset (default) (8-bit hex) (7-bit hex) PCTERM mode is a new (Data General-specific) function added to the VT320/100 emulation. This mode is designed to be used with the VP/ix environment running under INTERACTIVE UNIIX. It allows a simple terminfo file to be devised for VP/ix that will emulate the MS-DOS® environment on a terminal connected to a multi-user 80386 PC running UNIX. See Chapter 5, "PCTERM," for complete details on this operating mode. When the terminal enters PCTERM mode, autowrap is turned off, the keyboard is ,set to deliver IBM PC scan codes, GO is set to PC Low characters, G1 is set to PC High characters, XON is set to "e", XOFF is set to "g', GL is set to GO, and GR is set to Gl. When the terminal exits PCTERM mode, autowrap is turned on, the keyboard is set back to ASCII codes, XON is set to "Ctrl-Q", XOFF is set to "Ctrl-S", and GO, Gl, GL and GR are restored from a save area. 3-60 014-002111 Transmission Control· Sequences These sequences select the host-preferred mode of control sequence transmission and are only used on the VT320 emulation. If the communications mode is set to 7-bits, then these control sequences have no affect. If the communications mode is set to 8-bits, then the host has the option of receiving 7-bit (CO) sequences or 8-bit (Cl) codes. These control sequences do not affect the terminal's reception of control sequences sent by the host. 0413/0463 Transmit 7-bit Controls ESC F lB 20 46 (hex) Terminal transmits only 7-bit (CO) control sequences to the host (returns 8-bit (Cl) codes as their 7-bit code equivalents). 0413/0463 Transmit 8-bit Controls ESC G lB 20 47 (hex) Lets the terminal transmit both 7-bit (CO) and 8-bit (Cl) control sequences to the host. 014-002111 3-61 User-Defined Key Control Sequences User Defined Keys (UDK) D413/D463 Des ; I / ; .•• ; / ST 90 3B 7e 2F 3B .•. 3B 2F ge lB 50 3B 7e 2F 3B ••. 3B 2F lB 5e (8-bithex) (7-bithex) where is the clear control parameter with one of the following values: none clear all keys before loading new values o clear all keys before loading new values 1 clear and load the key being defined with a new value. is the lock control parameter, with one of the values below. (Ifkeys are locked, they may be unlocked only by using the General Set-Up menu.) none locks defmable keys against redefinition o locks definable keys against redefinition 1 unlocks keys regarding redefinition. is the key value for a particular function key, with one of the following values. F6 F7 F8 F9 17 18 19 20 21 flO Fll FI2 22 23 F13 24 F14 F15 F16 F17 FI8 FI9 F20 26 28 (Help) 29 (Do) 31 32 33 34 is a string of hexadecimal bytes that defines the character sequence for the specified key. Function keys F6 to F20 may be programmed with user-definable key sequences. A total of 255 bytes of volatile RAM is available for key definitions, and one key sequence may use up all or most of the available memory if desired. For example, the control sequence "Des 1; 1117/41424344454647 ST" defines function key F6 to "ABCDEFG". Where clear control is 1 to clear only the being defined, Lock control is a 1 to prevent keys from being locked against future redefinition. The " I" character indicates the UDK control sequence, 17 the value for function key six F6, I indicates the start of data, and 41424344454647 are hex values for the characters "ABCDEFG". 3-62 014-002111 Miscellaneous Control Sequences Soft Terminal Reset CSI ! P 9B 21 70 1B 5B 21 70 all terminals (8-bit hex) (7-bit hex) Resets all operating modes (both ANSI standard and ANSI privatE") to defaults. Also resets the character sets to defaults. Refer to the following sections of this chapter: "ANSI Standard Mode", "ANSI Private Mode", and "Character Sets." all terminals Hard Terminal Reset ESC c 1B 63 (hex) Causes the terminal to act as if the power had been shut off and turned back on again. We do not recommended using this control sequence since it will interfere with dual-host operation and may also cause the loss of characters from the host during the self-test sequence. all terminals Alignment ESC :jf: 8 1B 23 38 (hex) Fills the screen with an alignment pattern of E's. Display Character Generator Contents ESC :jf: 9 1B 23 39 all terminals ( hex) Displays the contents of the character generator. This is a Data General extension to the Alignment command. 014--002111 3-63 Set/Report Language all terminals CSI ? E 9B 3E' 45 1B 5B 3E' 45 (8-bit hex) (7-bithex) Sets the current keyboard language to the supplied language. If no language is supplied, then the terminal defaults to the current language. Reports the keyboard language as a single printable character formed by adding IF hex to the language numbers as shown in the table below. This command is only used for diagnostic and testing purposes. clang> cchar> 1 2 3 4 5 # 6 % 7 8 & $ 9 ( 10 11 12 13 14 15 ) * + Language North American United Kingdom French/Belgian German/Dutch Swedish/Finnish Spanish Danish Norwegian Swiss (German) Swiss (French) Italian Canadian English Canadian French Katal ; ; ; ; E' 9B 3E' 3B 3B 3B 3B 3B 46 1B 5B 3E' 3B 3B 3B 3B 3B 46 (8-bithex) (7-bit hex) where sets the hour mode: 1 sets 12 hour (AM/PM) mode 2 sets 24 hour (military) mode is the current time, from 0 through 23 (0 is midnight) is the current time from 0 through 59 3-64 014-002111 r If either or are specified, then the seconds counter is reset to O. This control sequence has been altered from its previous format used in the D216ID4121D462 terminals. The parameters for turning the clock on and off and for positioning the clock have been removed. Any data specified in the positions for these unused parameters will be ignored. 0413/0463 Hot Key Switch CSI ? G 9B 3F 47 1B 5B 3F 47 (8-bit hex) (7-bit hex) Switches terminal operation to another emulation. This control sequence is ignored if no other emulation is specified in the Configuration Menu. For more information on the Configuration Menu, refer to the Installing and Operating Your D216E, D217, D413, and D463 Display Terminals manual all terminals Set Top and Bottom Margins (STBM) CSI ; r 9B 3B 72 1B 5B 3B 72 (8-bit hex) (7-bit hex) where and are numeric parameters that define the first and last line of the scrolling region, respectively. Line number parameters are referenced from the top of the screen where the top line is always 1. If no parameters are supplied with this control sequence, then and are assumed to be the first and last line of the entire screen. Sets the top and bottom margins to define a window or scrolling region. 0413/0463 Bit Dump Screen CSI 6 i 9B 36 69 1B 5B 36 69 (8-bit hex) (7-bit hex) Dumps the contents of the screen graphically to a Data General or IBM Pro-Printer compatible printer. No action is taken if a graphics capable printer is not selected. This control sequence allows the printing of double-height and double-width characters, as well as DRCS (soft character set) characters, when the terminal is used with a graphics printer. This feature is not available in standard DEC VT320 terminals. 014-002111 3-65 Force Display all terminals DC2 12 (hex) This is a new (Data General-specific) function that forces the terminal to display the next character after the control code literally. It is used as an escape code (primarily for VP/ix) to allow access to the 128-character character sets. Ordinarily, codes 00 hex through IF hex, and 80 hex through 9F hex, are interpreted as control sequences. With this code given first, they will be forced into being displayed on the screen. Data Trap Mode all terminals This mode lets the user view data from the host as a hex data stream, similar to AOSNS's X DISPLAYIHEX command. Data Trap mode is entered and exited via the Configuration Menu. For more information on the Configuration Menu, refer to the Installing and Operating Your D216E, D217, D413, and D463 Display Terminals manual Outbound (host to terminal) data is displayed as 16 hex bytes per line (on the left, below) and the corresponding B-hit characters on the right, as follows: 40 30 31 32 33 34 35 36 37 38 39 21 23 24 2E OA 41 42 43 44 45 44 47 48 49 4A 4B 4C 4D 4E 4F 50 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 @0123456789!4f:$ .. ABCDEFGHIJKLMNOP abcdefghijklmnop NOTE: The Index entry ''VT320/100 mode control sequences by hex order" lists all VT320/100 control sequences by hex order. Refer to this entry to determine which control sequences are returned while using Data Trap mode. Select Active Status Display (SASD) CSI $ } 9B 24 7D IB 5B 24 7D 0413/0463 (B-bit hex) (7-bit hex) where determines where to place the cursor; places the cursor in the active display area. This is the default selection if no parameter is specified. 1 places the cursor on the status line. When the cursor is in the status line, the status line behaves as if it were a one-row window. o Sets the cursor to either the main display area or the status line. If the status line is not set to host-writable (SSDT), then this control sequence has no effect. 3-66 014-002111 Select Status Line Type (SSOT) CSI $ 9B 24 7E 1B 5B 24 7E 0413/0463 (8-bit hex) (7-bit hex) where determines the status line type: makes the 25th line blank (VT320 compatible) 1 displays terminal status on the 25th line 2 makes the status line host-writable (for the Select Active Display (SASD) control sequence). 3 25th row o This control sequence selects the type of status line displayed on the 25th line of the screen. Set Conformance level (SCl) CSI ; p 9B 3B 22 70 1B 5B 3B 22 70 all terminals ff (8-bit hex) (7-bit hex) where sets the termminal type: 61 VT100 62 VT220 63 VT320. 1 2 has one of the following values: sets 7-bit controls sets 8-bit controls This control sequence sets the terminal's conformance, or compatibility, level. 014-002111 3-67 Set Device Options CSI ? ; ; ; Q 9B 3F 3B 3B 3B 57 1B 5B 3F 3B 3B 3B 51 all terminals (8-bithex) (7-bit hex) where sets the device type: 1 printer 2 mouse. specifies the printer form feed setting: 1 none (no form feed character sent to printer) 2 form feed character sent before the page 3 form feed character send after the page 4 form feed characters are send both before and after the page prints specifies the printer character set: 1 U.S. ASCII and DGI 2 U.S. ASCII and VT Multinational 3 IBMPC 4 NRC only 5 NRC and VT Line Drawing (special graphics set) 6 Katakana specifies the graphics capability of the printer: 1 none 2 Data General 3 IBMPC Sets the type and preference options for the auxiliary device, if it is available; the auxiliary device in not available if the terminal is in Dual Host mode and the Port mode is set to "Both" (from Configuration Menu selections). Any parameter omitted defaults to the current setting. This control sequence is specific to the Data General VT-emulations, and is not available on DEC VT320 terminals. 3-68 014-002111 D413/D463 Split Screen CSI ? ; ; I 9B 3F 3B 3B 49 lB 5B 3F 3B 3B 49 (8-bithex) (7-bithex) where specifies the first physical row of the current emulation to display in this partition, and is from 1 through 24. If the parameter given is large enough that lines past the end of the screen would be visible, this value is set to the maximum possible. specifies the emulation to be shown in the top partition: o host 1 auxiliary specifies the number of rows to allocate for the top partition, and is from 0 through 23. If you enter 0 here, split screen is disabled. Sets or resets split screen. To enter split screen mode, you must first define two emulations in the Terminal Operations Menu. When split screen is set, one emulation will occupy the top n rows of the screen, and the other emulation will occupy the bottom "24 - n" rows. Because only a portion of each emulation's screen is displayed, this control sequence lets you select the starting row in .each partition. Any parameter omitted defaults to the current setting. This control sequence is specific to the Data General VT~mulations, and is not available on DEC VT320 terminals. NOTE: Press the CMD key and the Cursor Up/Down to move the split screen up or down. This command sequence also toggles the split screen setting. Press the CMD and SHIFf keys and Cursor up/down to move the first row of the current emulation up or down. 01~02111 3-69 Reporting Control Sequences A report is a character sequence that contains information about status, terminal identification, or current parameters. It is generated by the terminal in response to a request from the host computer. Terminal Identification (DECID) ESC Z IB SA all terminals (hex) Causes the terminal to send a Primary Device Attributes (DA) response sequence. Use this command to identify the terminal's VT52 mode; otherwise use the Primary Device Attribute Request (DA). Device Status Report (DSR) CSI 5 n 9B 35 6E IB 5B 35 6E all terminals (8-bit hex) (7-bit hex) Reports the terminal operating status, where the terminal responds to the host with: CSI 0 n 9B 30 6E IB 5B 30 6E no malfunction was detected during powerup self-test (8-bit hex) (7-bit hex) CSI 3 n 9B 33 6E IB 5B 33 6E malfunction was detected during powerup self-test (8-bit hex) (7-bit hex) 3·70 014-002111 Primary Device Attribute Request (DA) CSI c 9B 63 1B 5B 63 all terminals (8-bithex) (7-bithex) Returns the current operating level and options of the tenninal. The response string has the following format: CSI? ; ... ; c 9B 3F 3B .•. 3B 63 1B 5B 3F 3B ..• 3B 63 (8-bithex) (7-bithex) where indicates the operating level: 61 VT100 62 VT220 63 VT320 indicates the features in the following list: 1 132 column capability 2 printer port 6 selective erase 7 soft character sets (DRCS) (D463 only) 8 user defmedkeys (UDK) 9 National Replacement Sets (NRC) 11 25th row is the status line 14 8-bit communications interface 17 terminal state interrogation (TABSR, RQM, ... ) Response· 63 for the parameter and responses 11, 14, and 17 are new to the DEC VT320. Otherwise, this control sequence is identical to the DEC VT220 control sequence. 014-002111 3-71 Secondary Device Attribute Request (SDA) CSI > c 95 3E 63 15 55 3E 63 all terminals (8-bithex) (7-bithex) This control sequence returns additional information specific to the VT320 emulation. The response string is: CSI > ; ; c 95 3E 35 35 63 15 55 3E 35 35 63 (8-bithex) (7-bithex) where is the identification code, where: VT220 1 24 VT320 is the firmware revision level, where 11 is Version 1.1 is the number of hardware options installed, which should always be 0 Response 24 for the parameter and the parameter are new to the DEC VT320. Otherwise, this control sequence is identical to the DEC VT220 control sequence. all terminals Cursor Position Report (CPR) CSI 6 n 95 36 6E 15 55 36 6E (8-bithex) (7-bithex) Reports the current cursor position, with a sequence in the format below: CSI ; R 95 35 52 15 55 35 52 (8-bithex) (7-bithex) where and are numeric parameters that indicate the current line and column position of the cursor. - 3-72 014-002111 User Defined Key Status CSI ? 25 n 9B 3F 32 35 6E 1B 5B 3F 32 35 6E 0413/0463 (8-bit hex) (7-bithex) Reports the status of the user defined keys, where the terminal's response is as follows: CSI ? 20 n 9B 3F 32 30 6E 1B 5B 3F 32 30 6E means user defined keys are unlocked (8-bithex) (7-bithex) CSI? 21 n 9B 3F 32 316E 1B 5B 3F 32 31 6E means user defined keys are locked (8-bithex) (7-bithex) Keyboard Language Report CSI ? 26 n 9B 3F 32 36 6E 1B 5B 3F 32 36 6E 0413/0463 (8-bit hex) (7-bit hex) Reports the current keyboard language in use, where the terminal's response is as follows: CSI ? 27 ; n 9B 3F 32 37 3B 6E 1B 5B 3F 32 37 3B 6E 014-002111 (8-bithex) (7-bit hex) 3-73 where reports the current keyboard language, from the following list: o 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 99 Undetermined North American British Flemish French Canadian Danish Finnish German Dutch Italian SwisslFrench Swiss/German Swedish Norwegian French/Belgian Spanish Portuguese (was Katakana on D216ID4121D462) Katakana In addition, for testing purposes there is a Data General private control sequence to set the Keyboard Language, as shown below: CSI ? E 9B 3F 32 37 3B 45 IB 5B 3F 32 37 3B 45 (8-bithex) (7-bithex) where 3-74 is a numeric parameter, from the list above, indicating the keyboard language type. 014-002111 Answerback ENQ 05 0413/D463 (7-bit hex) Transmits answerback message (set in the Configuration Menu) to the host if an answerback message is set and answerback is enabled. Printer Port Status CSI '1 15 n 9B 3F 31 35 6E 1B 5B 3F 31 35 6E all terminals (8-bithex) (7-bithex) Reports the status of the terminal's printer port: CSI '1 13 n means DTR was never asserted; no printer attached 9B 3F 31 33 6E 1B 5B 3F 31 33 6E (8-bithex) (7-bithex) CSI '1 10 n 9B 3F 31 30 6E 1B 5B 3F 31 30 6E means DTR was asserted; printer is ready (8-bithex) (7-bit hex) CSI '1 l l n means DTR is not currently asserted; printer not ready (B-bithex) (7-bithex) 9B 3F 31 31 6E 1B 5B 3F 31 31 6E This status request checks the state of Data Terminal Ready (DTR) on the printer port. 014-002111 3-75 D413/0463 Request Terminal State Report (RQTSR) CSI 1 $ u 9B 31 24 75 1B 5B 31 24 75 (8-bit hex) (7-bit hex) This sequence returns a DCS string from the terminal to the host, as follows: OCS 1 $ s <01> ... ST 90 31 24 73 ... 9C 1B 50 31 24 73 <01> ... 1B 5C (8-bit hex) (7-bithex) where ... are characters in the range 40 to 4F hex, representing encoded state information. are a checksum equal to the 2's complement of all of the data above, such that the following statement holds: sum«Dl> ... & OxF)«4) + «Ckl> & 0xF) =0 The contents of the returned string are an encoded form of the internal state of the terminal. This control sequence allows an application to fetch the current state of the terminal, make changes, and then revert the state on exit. It is not intended that any application should examine the data returned to fmd state information. This control sequence is used in conjunction with the Restore Terminal State (RSTS) control sequence. All ANSI standard modes (CSI h and CSI 1) and ANSI private modes (CSI ? h and CSI ? 1) are saved. D413/0463 Restore Terminal State (RSTS) OCS 1 $ P ... ST 90 31 24 70 ... 9C 1B 50 31 24 70 <01> ... 1B 5C (8-bit hex) (7-bit hex) where all parameters are in the same format as the response strings given by Request Terminal State Report (RQTSR). If any error is detected in the given data, the rest will be ignored. This may put the terminal into an indeterminate state. Restores the terminal state from an encoded string produced by the Request Terminal State Report (RQTSR) control sequence. If any error is detected in the given data, the rest will be ignored. This may put the terminal into an indeterminate state. 3-76 014-{)02111 Request Presentation State Report (RQPSR) CSI $ w 9B 24 77 1B 5B 24 77 D413/D463 (~ithex) (7-bithex) For a cursor information report, set to 1. The returned DCS string is as follows: DCS 1 $ u ;;;;;;;;; ST 90 31 24 75 ;;;;;;;; ; 9C (~ithex) 1B 50 31 24 75 ;;;;;;;; ; 1B 5C (7-bithex) where is the line number the cursor is on (decimal) is the column number the cursor is on (decimal) is the page number, which is always 0 on a VT320 is the current rendition (SGR) encoded as a single character in the form 01EORBUb: E indicates if another byte follows (extension), is currently unused, and should be set to 0 R is 1 for reverse video on B is 1 for blink on U is 1 for underscore on b is 1 for bold on is the selective erase attribute encoded as a single character in the format OlEO OOOS: E indicates if another byte follows (extension), is currently unused, and should be set to 0 S is 1 for protected, 0 for unprotected 014-002111 3-77 is certain saved flags and is in the format of OlEO A320: E indicates if another byte follows (extension), is currently unused, and should be set to 0 A is 1 for autowrap pending (not'very useful, although it is in the DEC version of this sequence) 3 is 1 for SS3 pending (cannot be set, although it is in the DEC version of this sequence) 2 is 1 for SS2 pending (cannot be set, although it is in the DEC version of this sequence) is the Gx set mapped into GL (decimal). is the Gx set mapped into GR (decimal). is the number and size of the character sets, encoded into a single character: OlEO DCBA, where: , E indicates if another byte follows (extension), is currently unused, and should be set to 0 D indicates G3, and is set to 0 for 94 characters, set to 1 for 96 characters . C indicates is G2, and is set to 0 for 94 characters, set to 1 for 96 characters B indicates is G1, and is set to 0 for 94 characters, set to 1 for 96 characters A indicates is GO, and is set to 0 for 94 characters, set to 1 for 96 characters is four Dscs-style character set names for GO through G3. For a tab stop report, set to 2. The returned DCS string is as follows: Des 2 $ u / / ... ST 90 32 24 77 2F 2F ... ge lB 50 32 24 77 2F 2F ... lB 5C (8-bit hex) (7-bithex) where ... are decimal column numbers representing set tabs. Note that the separators here are / (2F hex), and not; C3B hex). The contents of this string are either the cursor status (the same information as that saved by the Save Cursor and the Restore Cursor control sequences), or the current tab stops. Unlike Request Terminal State Report (RQTSR), the data returned by this control sequence may be examined and acted upon by the application program. This control sequence is often used in conjunction with the Restore Presentation State (RSPS) control sequence. 3-78 014-002111 0413/0463 Restore Presentation State (RSPS) oes $ t <01> .. , ST 90 24 74 <01> ... ge 1B 50 24 74 <01> ... 1B 5e (B-bithex) (7--bit hex) where is 1 to restore the cursor state, and 2 to restore the tab settings ... are in the same fonnat as the response strings given by Request Presentation State Report (RQPSR). If any error is detected in the given data, the rest will be ignored. This may put the terminal into an indetenninate state. Restores either the current cursor state or the tab settings, as saved using Request Presentation State Report (RQPSR). 0413/0463 Request Mode (RQM) eSI [?] $ p 9B [3F] 24 70 1B 5B [3F] 24 70 (8-bithex) (7--bit hex) where ? (3F hex) tells the tenninal to return only ANSI private modes. Do not include this character if you want a report on ANSI standard modes. is the number of the mode (from 0 to 255) on which you want a report: ANSI standard modes 2 (32 hex) 4 (34 hex) 12 (31 32 hex) 20 (32 30 hex) 01~02111 Keyboard Action mode Insert/Replace mode SendlRaceive mode Line F'eeINew Line mode 3-79 ANSI private modes 1 (31 hex) 3 (33 hex) 4 (34 hex) 5 (35 hex) 6 (36 hex) 7 (37 hex) 8 (38 hex) 18 (31 38 hex) 19 (31 39 hex) 25 (32 35 hex) 42 (34 32 hex) 66 (36 36 hex) 67 (36 37 hex) 68 (36 38 hex) 99 (39 39 hex) Application/ANSI Cursor Keys mode Column mode Scrolling mode Screen mode Cursor Origin mode Auto Wrap mode Auto Repeat mode Print Form Feed mode Print Extent mode Text Cursor Enable mode MultiINational Character Set mode Numeric Keypad mode Backarrow Key mode TypewriterlData Processing Keys mode PCTERMmode Returns the current value of any of the terminal's mode settings. If the "1" character is absent, ANSI standard modes will be reported. If it is present, ANSI private modes will be returned. The control sequence returned is in the following format: CSI [7] i $ y 9B [3F] 3B 24 79 1B 5B [3F] 3B 24 79 (8-bit hex) (7-bit hex) where ? (3F hex) is present if and only if this is a private mode. is the mode number that was requested. is the current setting of the mode: 1 set 2 reset 3 permanently set 4 permanently reset This control sequence can return information on only one mode at a time. 3-80 014-002111 Request User-Preferred Supplemental Set (RQUPSS) CSI & u 9B 26 75 1B 5B 26 75 D413/D463 (~ithex) (7-bithex) .Returns data on which set has been assigned as the user-preferred supplemental character set, in the following form: Des ! ST 90 21 ge 1B 50 21 1B 5e (~ithex) (7-bithex) where and have the following values: o %5 1 A supplemental graphics set is DEC Multinational supplemental graphics set is ISO Latin-l (8859/1.2) These parameters are the same as those used in the Assign User Preferred Supplemental Set (AUPSS) control sequence. Read Cursor Contents eSI ? 17 h 9B 3F 31 37 68 1B 5B 3F 31 37 68 all terminals (B-bithex) (7-bithex) The read cursor content control sequence is intended for diagnostic purposes only. It returns five bytes from the terminal in the following formats: Byte 1 is in the form OCOO OONN, where C is the characters per line (0 for 80,1 for 132) and NN is the line mode (00 for normal, 01 for double width, 10 for double height top line, and 11 for double height bottom line). Byte 2 is in the form 0000 CCCC, where CCCC are the upper four bits of the character underneath the cursor. Byte 3 is in the form 0000 CCCC, where CCCC are the lower four bits of the character underneath the cursor. Byte 4 is in the form OOPO BURD, where P is the protection attribute of the character underneath the cursor (0 for unprotected, 1 for protected) and BURD are the character attributes (blink, underscore, reverse, and dim). Byte 5 is in the form 0000 BBBB, where BBBB is the character set selection (0 or 1 for the CGEN, and 4 through 15 for the DLL). 014-002111 3-81 The data returned by this control sequence is not intended for user-applications because the returned data may vary with future terminals. D413/D463 Request Selection or Setting (RQSS) Des $ q ST 90 34 71 9C 1B 50 34 71 1B 5e (8-bithex) (7-bithex) where is one of the following requests: $ } (24 7D hex) cursor on/off status line, set by Select Active Display (SASD) $ - (24 7E hex) status line type, set by Select Status Line Type (SSDT) " q (22 71 hex) character protect on/off, set by Select Character Attributes (SCA) " p (22 70 hex) operation mode, set by Set Conformance Level (SCL) r (72 hex) windows, set by Set Top and Bottom Margins (STBM) character attributes, set by Select Graphic Rendition (SGR) m (6D hex) Returns the current status of several different terminal features with a string in the following format: Des $ r ST 90 24 72 9C 1B 50 24 72 1B 5e (8-bithex) (7-bithex) where is 0 if the request was invalid, 1 ifvalid is in the form of the corresponding CSI control sequence Some examples of these host sequences and the terminal's response are shown below: Des $ q $ } ST Host: Terminal: Des 1 $ r 0 $ } ST getSASD . in scrolling area Host: 1B 50 24 71 24 7D 1B 5C Terminal: 1B 50 31 24 72 30 24 7D 1B 5C get SASD (7-bit hex) in scrolling area (7-bit hex) Host: Des $ q $ - ST Terminal: Des 1 $ r 1 $ - ST getSSDT indicator status Host: 1B 50 24 71 24 7E 1B 5C Terminal: 1B 50 31 24 72 31 24 7E 1B 5C get SSDT (7-bit hex) indicator status (7-bit hex) 3-82 014-002111 Host: DCS $ q m ST Terminal: DCS 1 $ r 0 ; 1 m ST getSGR bold is on Host: get SGR (7-bit hex) bold is on (7-bit hex) Tennin~: 1B 50 24 71 6D 1B 5C 1B 50 31 24 72 30 3B 31 6D 1B 5C In gener~. the portion of the return string may be prefaced by CSI and used to set the indicated mode. 014-002111 3-83 Printing Control Sequences Auto Print Mode all terminals CSI?5i 9B3F3569 IB5B 3F3569 (8-bit hex) (7-bithex) CSI?4i 9B3F3469 IB5B 3F3469 turns Auto Print off (8-bit hex) (7-bit hex) turns Auto Print on Auto Print mode causes the current cursor line to be printed when the terminal receives a Line Feed (LF), Form Feed (FF), or Vertical Tab (VT), or when the line automatically wraps. All keyboard printing functions such as Print Screen are operational in this mode. Auto Print mode may be toggled on or off manually from the keyboard by pressing Local Print. The control sequences, above, may be used by the host to access· Auto Print Mode. This mode may also be selected from the Print Option Menu. For information on using the Print Option Menu, refer to the manual Installing and Operating D216E+. D217, D413, and D463 Display Terminals. Print Screen all terminals CSI i 9B 69 1B 5B 69 (8-bithex) (7-bit hex) Prints a full screen of text. The host may also use the print screen function by sending the control sequence. This option may also be selected in the Print Option Menu. For information on using the Print Option Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. Print Cursor Line all terminals CSI ? 1 i 9B 3F 31 69 1B 5B 3F 31 69 (8-bit hex) (7-bithex) Prints the display line containing the cursor. 3-84 014-002111 Print Controller Mode all terminals CSI 5 i 98 35 69 18 58 35 69 turns Print Controller on (8-bithex) (7-bit hex) CSI 4 i 98 34 69 18 58 34 69 turns Print Controller oft' (8-bithex) (7-bithex) The Print Controller mode lets the host computer have direct control of the printer. Characters received from the host go directly to the printer with the exception ofXON, XOFF, CSI 5 i, and CSI 4 i. These sequences are used as control codes for the Print Controller mode. Characters from the keyboard are still transmitted to the host in this mode. This option may also be selected in the Print Option Menu. For information on using the Print Option Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. The print controller mode can be entered from Auto Print mode, but does not restore Auto Print mode when turned off. End of Section 014-002111 3-85 VT52 Emulation Operations and Escape Sequences This section provides a summary of the operations information specific to the VT52 emulation on the D2171D4131D463 terminals. In particular, this section explains the subjects covered in the following list: Character Sets and Graphics Keyboard Generated Codes VT52 Escape Sequences Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and various VT52 emulator reference material is covered in related appendices, located at the rear of this manual. Character, Sets and Graphics The VT52 emulation supports only the National Replacement Character (NRC) sets, which you select from the Emulation Configuration Menu.. For information on using the Emulation Configuration Menu, refer to the manual Installing and Operating D216E+, D217, D413, and D463 Display Terminals. You can access the Special Graphics character set by pressing the ESC key and typing F (lB 46 hex). You exit the graphics mode by pressing the ESC key and typing G (lB 47 hex). 3-86 014-002111 Keyboard Generated Codes The keyboard codes generated by the VT52 emulation are shown in Table 3-16, Table 3-17, and Table 3-18. The tables cross reference the VT52 keyboard with the 101-key keyboard (similar to an IBM-PC AT keyboard) and the 107-key Data General proprietary keyboard. Table 3-16 Keyboard Generated Codes 107-key Keyboard 101-key Keyboard VT52 Keyboard Fa F7 F8 Local Print Scroll Rate Hold C1 C2 C3 C4 Fa F7 F8 Print Screen Scroll Lock Pause AIt-F9 AIt-F10 AIt-F11 AIt-F12 Escape Backspace Line Feed Print Menu Hold PF1 PF2 PF3 PF4 Table 3-17 Keyboard Generated Codes 107-key Keyboard Uparrow Rightarrow Leftarrow Downarrow Home 014-002111 101-key Keyboard Uparrow Rightarrow Leftarrow Downarrow nla Function Keys (VTS2) Code 1B hex 08 hex OAhex Print-Menu none Hold Screen ESC P (1B 50 hex) ESC Q (1B 51 hex) ESC R (1B 52 hex) ESC S (1B 53 hex) Cursor Keys (VTS2) VT320/100 Keyboard Code Uparrow Rightarrow Leftc.rrow Downarrow nla ESC ESC ESC ESC ESC A (1B 41 hex) B (1B 42 hex) C (1B 43 hex) D (1B 44 hex) H (1B 48 hex) 3-87 Table 3-18 Keyboard Generated Codes - 107-key Keyboard 1 nla nla nla - (minus) • (comma) . (period) 0 1 2 3 4 5 6 7 8 9 Enter2 101-key Keyboard Num Lock / * + .I0elete O/Insert 1/End 210ownarrow 3/Pg On 4/Leftarrow 5 6IRightarrow 7/Home 8/Uparrow 9PgUp Enter VTS2 Keyboard with Num Lock On Numeric Keypad (VT52) VTS2 Keyboard . with Num Lock Off On I * - (minus) • (comma) . (period) 0 1 2 3 4 5 6 7 8 9 CR (00 hex) Off none none ESC? m (1B 3F 60 hex) ESC? I (1B 3F 6C hex) ESC? n (1B 3F 6E hex) ESC? P (1B 3F 70 hex) ESC? q (1B 3F 71 hex) ESC? r (1B 3F 72 hex) ESC? s (1B 3F 73 hex) ESC? t (1B 3F 74 hex) ESC? u (1B 3F 75 hex) ESC? v (1B 3F 76 hex) ESC? w (1B 3F 77 hex) ESC? x (1B 3F 78 hex) ESC? Y (1B 3F 79 hex) ESC? M (1B 3F 40 hex) 1 107-key keyboards numeric keypads have no Num Lock On/Off mofe. 3-88 014-002111 VT52 Escape Sequences The escape sequences for the VT52 emulation, and their functions, are shown in Table 3-19. Table 3-19 VT52 Escape Sequences Sequence ESC = (IB 3D hex) ESC> (lB 3E hex) ESC < (lB 3C hex) ESC A (IB 41 hex) ESC B (IB 42 hex) ESC C (IB 43 hex) ESC D (IB 44 hex) ESC F (IB 46 hex) ESC G (IB 47 hex) ESC H (IB 48 hex) ESC I (IB 49 hex) ESC J (IB 4A hex) ESC K (lB 4B hex) ESC P (IB 50 hex) ESC V (IB 56 hex) ESC W (IB 57 hex) ESC X (IB 58 hex) ESC Y 1 (IB 59 hex) ESC Z (IB 5A hex) ESC 1\ (IB 5E hex) ESC _ (IB 5F hex) ESC] (IB 5D hex) . Action Enter alternate keypad mode Exit alternate keypad mode Enter ANSI mode (VT100 mode Cursor up Cursor down Cursor right Cw'sorleft Enter graphics mode Exit graphics mode Move cursor to home Reverse line feed Erase to end of screen Erase to end of line Read cursor contents Print cursor line Enter printer controller mode Exit printer controller mode Position cursor1 IdencitY Enter auto print mode Exit. auto print mode Print screen 1 and are encoded by taking the desired row (0 to 23 decimal) and column (0 to 79 decimal) and adding a 20 hex offset. Thus, the valid ranges (in ASCII form) for row and column are from to "7", and from to "0' respectively. In hex, row ranges from 20 to 37; column ranges from 20 to 4F. End of Section End of Chapter 014-002111 3-89 Chapter 4 Tektronix 4010 Emulation This chapter provides the information necessary to program host resident software that will be accessed through the Tektronix 4010 emulation running on the D463 Data General terminal. This chapter has the major sections listed below: Emulation Features Overview of Operational Modes Alphanumeric Mode Graphic Plot Mode Graphics Input Mode Hard Copy Command Hot-Key Switch User Selectable Options Control Codes Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and reference material, which . may apply to the Tektronix 4010 emulation, is covered in appendices, located at the rear of this manual. 014-002111 4-1 Emulation Features The Tektronix 4010 emulation provides maximum compatibility with Tektronix 4010 operational modes and implements 4010 vector graphics with a raster display. Some of the main programming features of the Tektronix 4010 emulation are listed below: • 36 lines of 101 displayed characters in an 8 x 8 dot matrix • 1024 x 780 graphic display window mapped into a hardware resolution of 810 x 288 • Graphic hard copy ability on both Data General printers and mM Pro-Printers The Tektronix 4010 emulation allows complete control of the terminal from both local and host sources in all Tektronix operational modes. Use of these features is explained fully in the following sections. Overview of Operational Modes The operational modes of the Tektronix 4010 emulation can be selected either by a control sequence generated from the host computer or by the keyboard. Data entry can be confined to the keyboard through the use of the Cmd-On Line key sequence. The operational modes are listed below: • Alphanumeric Mode • Graphic Plot Mode • GraphiclnputMode 4-2 014-002111 Alphanumeric Mode While in the Alphanumeric Mode, the Tektronix 4010 emulation displays any of the 95 printable keyboard characters. In the original Tektronix 4010 terminal, lower--case letters were not displayed and could not be entered from the keyboard; if attempted, the terminal would display these characters in upper case. However, our emulation allows lower case letters to be generated from the keyboard and to be displayed as text. This makes it possible to test all graphics coordinates from the keyboard. A block cursor is displayed to indicate the position of the next displayed character. Our implementation of the Tektronix 4010 emulation has a screen size of 36 lines with a maximum of 101 characters per line. The cursor automatically wraps to the next line when it passes the right-hand screen margin. When the Tektronix 4010 emulation is selected, the terminal is reset to the Alphanumeric mode, and the cursor appears in the upper-left (Home) position. Margins The Tektronix 4010 emulation has two left margins on the alphanumeric screen. The first, called Margin 0, is the extreme left of the screen (at the first character location, i.e. column 1). The second is Margin 1. It is located at the 51st character position (i.e. column 51). When the cursor moves past the 36th line, Margin 1 is automatically set as the new left margin and the cursor returns to the first line. Margin 1 remains set until the cursor moves past the 36th line again. Similarly, cursor up movement wraps when it passes the 1st line and causes a margin switch, and clearing the screen resets to Margin O. The advantage of using Margin 1 is that the display has two columns of output. The major disadvantage is that if there are any first--column lines that extend past the 51st column (the center of the screen), they will be overstruck by text in the second column and may become illegible. View and Hold Submodes The Alphanumeric screen is displayed at normal intensity. If no data is received from the host or the keyboard for 15 minutes, the screen blanks to prolong the life of the CRT and to prevent raster burn in. This dimming is referred to as the Hold submode, while normal Alphanumeric operation is referred to as View mode. Once in Hold submode, the screen stays blank until data is received from either the host or the keyboard. 014-002111 4-3 Graphic Plot Mode In Graphic Plot Mode, the Tektronix 4010 emulation addresses a screen of 1024 (x-axis) x 780 . (y-axis) points, with the origin (0,0) in the lower left of the screen. These points are addressed by a series of variable-length codes (1 to 4 bytes long) that are generated by the host or the keyboard. Plot information is usually generated from the host source, but can be entered from the keyboard. Figure 4-1 shows the coordinate system used in the Tektronix 4010 emulation. (0,779) (1023,779) • (512,390) center (0,0) (1023,0) Figure 4-1 The Coordinate System of the Tektronix 4010 Emulation Using Graphic Plot Mode To enter Graphics Plot Mode an ASCII ("Ctrl-]" ASCII, 1D hex) must be sent from either the host or the keyboard. Once the terminal is in the Graphic Plot Mode, a series of coordinate locations are sent to draw the desired lines. Upon entering the Graphics Plot mode, the last entered graphics coordinate is automatically specified as the first point in the first vector. This last coordinate is initialized to (0,0) on power-up or reset. The first vector after a is always drawn as a dark (invisible) vector. Vectors are drawn from the previously addressed coordinate to the current specified point. Dark vectors can be specified at any time by placing a before the coordinate address of the terminating point of the specified vector. Plot information is sent in 1 to 4 byte sequences containing the high- and low-order bytes for the x-coordinate and the high- and low-order bytes for the y-coordinates. The next section describes how this information is encoded. NOTE: In the original Tektronix 4010 terminal, lower-case characters could not be generated, hence a large portion of the coordinates could not be manually entered from the keyboard. The Tektronix 4010 emulation allows these characters to be entered manually from the keyboard. 4-4 014-002111 Coordinate Conversion Follow the steps in this section to covert (x,y) coordinates to the variable-length code format necessary for the Tektronix 4010 emulation. Remember that if no points have yet been plotted, the "previous" (x,y) referred to is (0,0). 1. Determine an (x,y) coordinate. Begin with an (x,y) pair with each ordinate in the range of [0,1023]. The displayable range of the y-ordinate is only [0,779]. If a y-ordinate in the range of [780,1023] is selected, the generated line will be clipped where it crosses the upper edge of the screen. 2. Convert the (x,y) coordinate. Convert the (x,y) coordinate to a pair of binary strings, each 10 bits long. Each lO·-bit binary string has five Most Significant Bits (MSBs or "high-order bits") and five Least Significant Bits (LSBs or "low-order bits"). 3. Set the y high~rder bits. Compare the high-order bits of the current y and the previous y. If they are unequal (changed), add an offset of20 hex (32 decimal, 40 octal) to the value of this five-bit string to yield a value between 20 hex and 3F hex, and transmit this character to the terminal. 4. Set the y low~rder bits. Compare the low-order bits of the current y and the previous y and compare the high-order bits of the current x and the previous x. If the current low-order y does not equal the previous low-order y (changed) or if the current high-order x does not equal the previous high-order x (changed), then add an offset of 60 hex (96 decimal, 140 octal) to the value of the y low-order bits to yield a value between 60 hex and 7F hex, and transmit this character to the terminal. 5. Set the x high~rder bits. Compare the high-order bits of the current x and the previous x. If they are unequal (changed), add an offset of20 hex (32 decimal, 40 octal) to the value of this 5-bit binary string to yield a value between 20 hex and 3F hex, and transmit this character to the terminal. 6. Set the x low~rder bits. Add an offset of 40 hex (64 decimal, 100 octal) to the value ofthe low-order bits of the current x to yield a value between 40 hex and 5F hex, and transmit this character to the terminal. This code signals the terminal to draw the line, thus you must always transmit this character. Refer to Appendix C for an example of the code that performs this algorithm. 014-002111 4-5 Example of Conversion Process Let's draw a box around the perimeter of the screen. From Step 1- The vertices of this box are (0,0), (0,779), (1023,779), and (1023,0). Put the terminal into Graphic Plot Mode by sending it a GS character (lD hex, 35 octal). Because of the GS character, we are drawing an initial dark (or invisible) vector. This vector should go to (0,0). From Step 2 Convert (0,0) to a pair of binary strings, each 10-bits long. The result is (0000000000,0000000000). From Step 3 - We want to begin drawing the box at (0,0), so assume that none of the binary strings match the previous strings. Because the strings do not match and the value of the string we just . created is 0 hex, the 20 hex offset means we must transmit a character (20 hex). From Step 4 - Because the strings do not match and the value of the string we just created is 0 hex, the 60 hex offset means we must transmit a " , " character (60 hex). From Step 5 - Because the strings do not match and the value of the string we just created is 0 hex, the 20 hex offset means we must transmit a character (20 hex). From Step 6 - Because the strings do not match and the value of the string we just created is 0 hex, the 40 hex offset means we must transmit an "@" character (40 hex). Thus the first four characters (the first vector) transmitted are: ' @(20 602040 hex). Now we will draw from (0,0) to (0,779). The binary representation of (O,779)is (0000000000,1100001011). From Step 3, because the high-order bits of the current y (11000) do not equal the high-order bits of the previous y (00000), add 20 hex to 11000 binary to get 38 hex, the ASCII numeral "8". From Step 4, because the low-order bits of the current y (01011) do not equal the low-order bits of the previous y (00000), add 60 hex to 01011 to get 6B hex. or ASCII "k.". From Step 5, because the x-ordinate does not change (the high-order bits of the current x equals those of the . previous x), we do not transmit this character. From Step 6, add 40 hex to the low-order bits of the current x (00000) to get 40 hex, or the ASCII "@". Thus the second vector (of only three characters) is: 8k@ (38 6B 40 hex). Now we will draw the line across the top of the screen to (1023,779). From Step 2, in binary this coordinate is (1111111111,1100001011). From Step 3, because the upper-order y does not change, we do not transmit this character. From Step 4, even though the lower-order y did not change, the upper-order x did change, so we must transmit a character, which is the value of the lower-order y plus 60 hex, or an ASCII "k.". From Step 5, because the high-order x changed, we must transmit a character, which is the value of the upper-order x (11111 binary) plus 40 hex, which yields the ASCII "?". From Step 6, the character transmitted is 5F hex or an ASCII "_". Thus the third vector is: k?_ (6B 3F 5F hex). Now we draw the line down the the right side of the screen. The coordinate is (1023,0) or (1111111111,0000000000) in binary. Both high-order and low-order y have changed, so we must send them. X has not changed, but low-order x must be sent anyway to tell the terminal that we are done with this vector. Thus the final vector is: '_ (2060 5F hex). The last vector returns us to (0,0). Its form is: '@ (602040 hex). The final action will be to return to Alphanumeric Mode by sending an ASCII US character (IF hex). 4-6 014-002111 Graphics Input Mode The Graphics Input Mode is initiated by the host and terminated by the user. The host program has the ability to tum on the graphics cursor in the Tektronix 4010 emulation. Once on, the operator can move the cursor to any point and transmit the coordinates of the point to the host program by pressing any alphanumeric key. There are three protocols used to receive cursor information back from the 4010 emulation. The first transmits alphanumeric-cursor information and a status byte to the host. The second and third transmit graphics cursor information. This lets user programs interactively manipulate both the alphanumeric and graphics displays on the screen, while constantly updating cursor information. Alphanumeric Cursor To receive information on the current coordinates of the alphanumeric cursor on the screen, the host program sends an ESC ENQ (lB 05 hex) sequence to the terminal. In turn, the emulation transmits an 8-bit status byte, the coordinates of the alphanumeric cursor, and the data tenninator (if any is selected). The format of the status byte is shown in Table 4-l. Table 4-1 Format of the Alphanumeric Cursor Status Byte Bit Function Default Comment 7 6 5 none none none o(Oft) o(Oft) Bits 765 must be 001 respectively to keep the status byte in the range of 20 hex to 3F hex. 4 HCU o (Oft) Indicates whether hard copy unit (printer) in use. (0 printer not availablell printer is available) 3 none 0 (Oft) nJa 2 GRAPH 0 (Oft) Indicates what mode emulation is in. (0 for graphicl1 for alphanumeric) 1 MARGIN 0 (Oft) Indicates what margin in effect. (0 for margin OIl for margin 1) o none nJa 1 (On) 0 (Oft) After the status byte is transmitted, the coordinates of the alphanumeric cUrsor are transmitted to the host. These bytes mayor may not be followed by terminators, depending upon whether some form of terminator was selected from the Configuration Menu. The format of the cursor coordinates is a lO-bit binary value for the x-ordinate and a 10-bit binary value for the y-ordinate. Each of these lO-bit values is formed from two characters (one for the high-order bits and one for the 01~02111 4-7 low-order bits), with each 5-bit value in the range from 20 hex to 3F hex. The alpha cursor is placed with its lower left-hand corner at the end of the last graphic vector drawn. This position may be anywhere on the screen, but is aligned with the 36x101 grid by the next cursor up or down movement. To position the cursor without drawing, send: (lD hex) (IF hex). The alpha cursor mayor may not be aligned with the bottom left corner of a character cell. The emulation normally multiplies the current cursor location (row and column) by the size of the character cell (8x8). Multiplying each row and column by eight (the row and column dimensions of a character cell) positions the cursor at the bottom left of the character cell. However, the actual numeric value ofthis multiplication may be offset, because the cursor m~y be placed anywhere within the 64 points that define the character cell. Graphics Cursor There are two different methods for obtaining graphics cursor information. In the first procedure, the host sends an " " (lB 1A hex) sequence, waits 20 milliseconds, and then sends an " " (lB 05 hex). The 20 millisecond delay is only for compatiblility with the original Tektronix 4010, and is not necessary for operation of the Tektronix 4010 emulation. The emulation responds to this sequence by sending the cross-hair coordinates followed by terminators, if any were chosen. These sequences are in the format of . Each and is composed of two characters from 20 hex to 3F hex, each of which represents the 5 high-order bits and 5 low-order bits of each ordinate location. The sent depends upon the setting for this option in the Configuration Menu. In the second procedure, the host computer enables the cross-hair cursor by sending an " " (lB 1A hex) to the terminal. The operator can then move the cross-hair cursor to a desired point by using the arrow keys or mouse, and strike a keyboard character. The emulation responds by transmitting the keyboard character that was struck, followed by the coordinate information, and any terminators that were selected. The format of the coordinate information and the terminator is identical to those in the paragraph above. Hard Copy Command The Tektronix 4010 emulation can produce a screen dump of the current screen to a printer attached to the printer port of the terminal. Pressing the Print key or entering the "ESC " (IB 17 hex) control sequence dumps the contents of the screen to the terminal's serial printer port. 4-8 014-002111 Hot-Key Switch This command tOggles from the active emulation to the currently inactive emulation making it . active. This command is only valid during a dual-host session. lB (octal) (hex) ESC> (ASCll/keyboard) <033> <076> This hot-key switch is used in a diagnostic routine to verify operation of the Dual Host mode. User Selectable Options Many of the configuration parameters on the original Tektronix 4010 were implemented through the use of jumpers inside the terminal. Our Tektronix 4010 emulation uses a software menu to configure the terminal. The menu options in the following sections are available to the terminal operator via the Configuration Menu. Graphic Input Terminators The data terminators in the Graphic Input Mode can be chosen, from the Configuration Menu, to be either: only (default); followed by ; or no and no c::EOT>. Line/Local Operation Tektronix 4010 emulation line and local operation can be toggled by means of the Cmd-On Line key sequence or through the Configuration Menu. Line status is displayed by the On-Line status LED. Data Communication Baud Rates Various baud rates can be selected through the Configuration Menu: 150, 300, 600, 1200,2400,4800, 9600 and 19200. The terminal transmits only 7-bit codes to the host, but may be set to 8-bits per character for compatibility. 014-002111 4-9 Control Codes The single control codes used by the Tektronix 4010 emulation are shown in Table 4-2. Some of these single codes are also used in double control sequences (escape sequences), which are shown in Table 4-3. Table 4-2 Single Control Codes ASCII Decimal Hex Keyboard Comment BEL 7 07 Ctrl-G Tone from Speaker BS 8 08 Ctrl-H Backspace HT 09 Ctrl-I Cursor Right LF 9 10 OA Ctrl-J Line Feed (move down one line) VT 11 OB Ctrl-K Move Up One Line CR OD Ctrl-M Carriage Return ESC 13 27 IB Ctrl-[ or ESC key For ESC Sequences (see Table 4-3) GS 29 ID Enter Graphic Plot Mode US 31 IF Ctrl-] Ctrl__ Enter Alphanumeric Mode Table 4-3 Double Control Codes (Escape Sequences) 4-10 014-002111 Sequence Decimal Hex Keyboard Comment ESCENQ 275 IB05 ESC Ctrl-E Terminal Returns Status Byte and Alphanumeric Cursor Coordinates. ESC SUB 2726 1B1A ESC Ctrl-Z Starts Cross-Hair Cursor a. Followed by 20 ms delay then ESC ENQ, terminal returns position of the cross-hair cursor.b. Followed by movement of cursor and striking of any key on keyboard, terminal returns the character struck, then the cross-hair position. ESCETB 2723 1B17 ESCCtrl-W Send Screen Dump to Printer ESCFF 1BOC ESC Ctrl-L Erase Screen, Return to Alphanumeric Mode, and Home Cursor. 2712 End of Chapter 014-002111 4-11 Chapter 5 PCTERM Operations This chapter provides programming information for the PCTERM operating mode of the VT320/100 emulation running on the D217/D4131D463line of Data General terminals. This chapter has the major sections listed below: Introduction Inbound (Terminal to Host) Codes Outbound (Host to Terminal) Codes VP/ix getty Setup Sample terminfo File Sample VP/ix term File Information regarding functions and operations of the terminal that apply to all modes or emulations is covered in Chapter 1. Additional information on keyboard layouts and reference material, which may apply to the PCTERM operating mode is covered in appendices, located at the rear of this manual. Introduction PCTERM lets terminals emulate an IBM PC environment that can be connected to different types of systems. For example, PCTERM can be used with a VP/ix system running under INTERACTIVE UNIX. PCTERM is accessed through either the VT320 or VT100 emulation. For more details on PCTERM as a VT320/100 operating mode, refer to the "PCTERM Mode"section in Chapter 3. 014-002111 5-1 Inbound (Terminal to Host) Codes Two sets of inbound codes were altered for the operation of PCTERM: flow control codes and keyboard generated codes. Flow Control Under normal operations, the flow control codes XOFF and XON are generated by Ctrl-S and Ctrl-Q (13 hex and 11 hex). However, in PCTERM, XOFF and XON are generated by the ASCII characters "g/' (hex 67) and "e" (hex 65). Regardless of this change, flow control operations within PCTERM are identical to those of other terminal modes and emulations. For more information on terminal flow-eontrol operations, see the "Flow Control" section in Chapter 1. Keyboard Generated Codes All terminals support two keyboards: a 101-key keyboard, similar to that of the IBM PC AT-style, and a 107-key Data General proprietary keyboard. With the exception of two keys, the Data General proprietary keyboard is fully mapped as an enhanced XT-style keyboard. The rightmost Alt key and the rightmost Ctrl key were omitted from the Data General proprietary keyboard. Since a terminal operating in the PCTERM mode must send codes for almost every key, there are a limited number of local-functions available on the terminal while in this mode. However, the local functions Cursor Type, Cmd-Alpha Lock (hot-key switch between emulations), and Cmd-N/C (Configuration Menu) are supported and do not send codes to the host. When using PCTERM, you will find it handy to refer to the red legends on the front of certain keycaps on the Data General proprietary keyboard; these legends are correct with the exception of the "+" sign in the numeric keypad. Even though they have no red legend, keys F14 and F15 substitute as numeric keypad keys" I" and " * " respectively. In PCTERM mode, the state of Caps Lock, Scroll Lock, and Num Lock are correctly displayed on the appropriately titled LEDs. Table 5-1 through Table 5-5 show the keyboard codes generated. 5-2 014-002111 ;.' • ./'.J'.. .. ~ "0" ~ '::;~;:;:: . ~~. " .... -: .... . :;: . *. . \,'\::; Table 5-1 Keyboard Generated Codes - Function Keys (PCTERM) 107-key . Keyboard F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 Cursor Type (F16) N/C (F17) Local Print (F18) Scroll Rate (F19) Hold (F20) NlA 101-key Keyboard Scan Code (in hex) Key Down Key Up F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 3B 3C 3D 3E 3F 40 41 42 7 8 9 nla I (num kypd) * (nurn kypd) N/A N/A Scroll Lock Nurn Lock Pause 014-002111 C4 45 E11045 E1 90 C5 Ctrl-Pause (Break) EO 46 101-key Keyboard 7 8 9 - - , + 4 5 6 44 57 58 none EO 35 37 none none 46 Table 5-2 Keyboard Generated Codes 107-key Keyboard 43 BB BC BO BE BF CO C1 C2 C3 4 5 6 1 2 3 0 1 2 3 0 New Line Enter 07 08 none EOB5 B7 none none C6 C5 none EOC6 Numeric Keypad (PCTERM) Scan Code (in hex) Key Down Key Up 47 48 49 4A 4B 4C 40 4E 4F 50 51 52 53 EO 1C C7 C8 C9 CA CB CC CO CE CF DO 01 02 03 E09C 5-3 Table 5-3 Keyboard Generated Codes - Editing Keypad with Num lock Off (PCTERM) 107-key Keyboard 101-key Keyboard Scan Code (in hex) Key Up Key Down Erase Page Print Alt-Print Erase EOl C1 (uparrow) C2 (Ieftarrow) Home (rightarrow) C3 (downarrow) C4 Insert EO 52 Print Screen E02AE037 Alt-Print Screen (Sysreq) 54 Delete EO 53 Home EO 47 (uparrow) EO 48 Page Up EO 49 (Ieftarrow) E04B nla none (rightarrow) EO 40 End E04F (downarrow) EO SO Page Down EO 51 EO 02 EO B7 EOAA 04 EO 03 EOC7 EOC8 EOC9 EOCB none EO CD EOCF EO DO EOD1 Table 5-4 Keyboard Generated Codes - Editing Keypad with Num lock On (PCTERM) 5-4 107-key Keyboard 101-key Keyboard Scan Code (in hex) Key Down Key Up Erase Page Print Alt-Print Erase EOl C1 (uparrow) C2 (Ieftarrow) Home (rightarrow) C3 (downarrow) C4 Insert EO 2A EO 52 Print Screen EO 2A EO 37 Alt-Print Screen (Sysreq) 54 Delete EO 2A EO 53 EO 2A EO 47 Home (uparrow) EO 2A EO 48 Page Up EO 2A EO 49 (Ieftarrow) E02A E04B nla none (rightarrow) E02A E04D End EO 2A EO 4F (downarrow) E02A EO 50 Page Down EO 2A EO 51 EO 02 EOAA EOB7 EOAA 04 EO 03 EO AA EOC7EOAA EOC8 EOAA EO C9 EO AA EOCB EOAA none EO CD EOAA EO CF EOAA EO DO EO AA EO 01 EO AA 014-002111 Table 5-5 Keyboard Generated Codes - Main Keypad (PCTERM) 107-key Keyboard 101-key Keyboard ESC 1! 2@ 3# 4$ 5% 6" 7& 8* 9( 0) ESC 1! 2@ 3# 4$ 5% 6" 7& 8* 9( 0) -- -- , \I '\I Q Q W W E R T R T Y U I Y U I 0 0 P [ P [ ] - =+ Del Tab I Spcl CR Ctrl =+ Backspace Tab E Spcl Enter Ctrl A A S 0 F S 0 H F G H J J K L K L G · ··... ·. · .. Scan Code (in hex) Key Down Key Up 01 02 03 04 05 06 07 08 09 OA OB OC 00 29 2B OE OF 10 11 12 13 14 15 16 17 18 19 1A 1B none 1C 10 1E 1F 20 21 22 23 24 25 26 27 28 81 82 83 84 85 86 87 88 89 8A 8B 8C 80 A9 AB 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B none 9C 90 9E 9F AO A1 A2 A3 A4 AS A6 A7 AS continued 014-002111 5-5 'w, ~" , ~ . ... ' . ~ " " .. ~ Table 5-5 Keyboard Generated Codes 107-key Keyboard 101-key Keyboard Newline Rept Left Shift Z Enter n/a Left Shift Z X X C C V V B N B N M M ,< .'> I? Right Shift Cmd On Line Space Alpha Lock ,< .> I? Right Shift nla Right Ait Space Caps Main Keypad, continued (PCTERM) Scan Code (In hex) Key Down Key Up 1C none 2A 2C 20 2E 2F 30 31 32 33 '34 9C none AA AC AD AE AF BO B1 B2 B3 B4 35 B5 36 none 38 39 3A B6 none B8 B9 BA Outbound (Host to Terminal) Codes Command codes in PCTERM are largely identical to those of the VT320/100 emulation. The only changes are in the areas of cursor addressing and character sets. Cursor Addressing The 25th row status-line is not used on PCTERM. Thus, the 25th row is displayed as part of the active screen area, and all cursor-positioning commands may access it. Character Sets The GL and GR character sets are set to IBM PC characters (PCTERM Low and PCTERM High, respectively). Each of these character sets has 128 characters. The codes 60 to iF hex and 80 to 9F hex may be accessed by prefixing the character to be displayed with 12 hex (Ctrl-R, from Force Display command). Shift In and Shift Out may still be used to access other characters as desired. The keyboard on the terminal will not operate in 7-bit mode because PCTERM is strictly an 8-bit operating environment due to the use of 8-bit scan codes on the keyboard. 5-6 014-002111 >:.; > LlWl : ;> f ~ > > _~ NOTE: The D217 terminal does not have a GR character set 50 the application program will have to use Shift in and Shift out to appropriately set GL. VP/ix getty Setup This entry should go into /etc/gettydefs. It defines a reasonably useful communications setup for a VPFlx user. vpixtty# B9600 HUPCL csa CREAn ICANON ECHO ECHOE ECHOK ECHONL OPOST ICRNL #B9600 CREAn CLOCAL ICRNL OPOST ICANON ECHO ECHOE ECHOK ECHONL csa IXON IXOFF ONLCR ISIG HUPCL #System-name login: #vpixtty This should be entered all on one line and the ease is significant. An easy way to do this is to type the following command: cat » /etc/gettydefs Then enter the getty definition and press Newline twice. Then press Ctrl-D to finish this update. Sample terminfo File This terminfo source file should be compiled with the tic utility. This description gives the UNIX terminal drivers access to the VT320/100 emulation for operations outside ofVP/ix, as well as providing background information inside VP/ix. dg-pctermlDG PC Terminal, use=vtlOO, . 014-002111 5-7 .. . . I ~ . . .... .... ' ... . ~ ... . , .. Sample VP/ix term File This following lines should go in / us r / vpix/ term/ dgycterm to describe a Data General terminal running PCTERM for use within the VPIix environment. * @(#>dgycterm 1.0 -89/10/09 * Part I: output definitions output: \001 \022-\001 * smiling face, black-on-white output: \002 \022-\002 * smiling face, white-on-black output: \003 \022-\003 * heart output: \004 \022-\004 * diamond output: \005 \022-\005 * club output: \006 \022-\006 * spade output: \007 \022-\007 * centered dot, black-on-white output: \010 \022-\010 * centered dot, white-on-black output: \011 \022-\011 * circle, black-on-white output: \012 \022-\012 * circle, white-on-black output: \013 \022-\013 * male symbol output: \014 \022-\014 * female symbol output: \015 \022-\015 * musical note output: \016 \022-\016 * musical double-note output: \017 \022-\017 * sun output: \020 \022-\020 * right-hand turn signal output: \021 \022-\021 * left-hand tum signal output: \022 \022-\022 * uparrow and downarrow output: \023 \022-\023 * double-exclamation mark output: \024 \022-\024 * paragraph mark output: \025 \022-\025 * section mark output: \026 \022-\026 * horizontal black rectangle output: \027 \022-\027 * underlined upparrow and downarrow output: \030 \022-\030 * uparrow output: \031 \022-\031 * downarrow output: \032 \022-\032 * rightarrow output: \033 \022-\033 * leftarrow output: \034 \022-\034 * centered lower-left of box output: \035 \022-\035 * rightarrow and leftarrow output: \036 \022-\036 * centered black up triangle output: \037 \022-\037 * centered black. down triangle output: \177 \022-\177 * large centered empty triangle output: \200 \022-\200 * C with cedilla . output: \201 \022-\201 * u with umlaut output: \202 \022-\202 * e with accent-egu output: \203 \022-\203 * a with circumflex 014-002111 output: \204 \022-\204 * a with umlaut output: \205 \022-\205 * a with accent-grave output: \206 \022-\206 * a with little circle output: \207 \022-\207 * c with cedilla output: \210 \022-\210 * e with circumflex output: \211 \022-\211 * e with umlaut output: \212 \022-\212 * e with accent-grave output: \213 \022-\213 * i with umlaut . output: \214 \022-\214 * i with circumflex output: \215 \022-\215 * i with accent-grave output: \216 \022-\216 * A with umlaut output: \217 \022-\217 * A with little circle output: \220 \022-\220 * E with accent-egu output: \221 \022-\221 * joined ae output: \222 \022-\222 * joined AE output: \223 \022-\223 * 0 with circumflex output: \224 \022-\224 * 0 with umlaut output: \225 \ 022-\225 * 0 with accent-grave output: \226 \022-\226 * u with circumflex output: \227 \022-\227 * u with accent-grave output: \230 \022-\230 * y with umlaut output: \231 \022-\231 * 0 with umlaut output: \232 \022-\232 * U with umlaut output: \233 \022-\233 * cent symbol output: \234 \022-\234 * English pound symbol output: \235 \022-\235 output: \236 \022-\236 output: \237 \022-\237 [NOTE: These definitions can be used for all tenninals.] * terminfo-type definitions Part II: clear: csr: ri: svpix: fvpix: c xon: c xoff: pccompat: ind: cup: cub1: cuf1: cuu1: 014-002111 \E[H\E[2J \E[%i%p1%d;%p2%dr \EM \E[?99h \E[?99l e g y \ED \E[%i%p1%d;%p2%dH \b \E[e \E[A 5-9 cUdl: ed: el: \n \E [J \E[K [NOTE: Use these definitions for D413/D463 only.] * clear: ri: svpix: fvpix: c xon: c xoff: pccompat: ind: ill: dll: ichl: dchl: cup: cubl: cufl: cuul: cudl: ed: el: * terminfo-type definitions Part I I : \E[H\E[2J \EM \E[?99h \E[?991 e g y \ED \E[L \E[M \E[@ \E[P \E[%i%pl%d;%p2%dH \b \E[e \E[A \n \E[J \E[K Part I I I : sgrO: blink: bold: rev: smul: blbo: blr: blu: bor: bou: blbor: blbou: 5-10 attribute definitions \E [Om \E[O;5m \E[O;lm \E[O;7m \E[O;4m \E[O;1;5m \E[O;5;7m \E[O;4;5m \E[O;1;7m \E[Oil;4m \E[Oil;5i7m \E[Oil;4i5m 014-002111 If you are using the /bin/ sh (Bourne) shell, place the following lines in /usr/"$LOGNAME" / .profile to specify that a particular user will use this terminal type: TERM=dg-pcterm export TERM If you are using the /bin/csh (C) shell, then use the following in the /usr/$home/ . login file: set term=dg-pcterm To finish the setup for a VPf1x user, use the addvpixuser option in the packagemgmt selection in sysadm. Then go to the ttymgmt menu and select modtty. Use this function to set the user's login Line Setting to vpixtty. End of Chapter 014-002111 5-11 Appendix A Character Sets This appendix contains tables of each character set supported by the D217+ID413/0463: • United States ASCII • NRC United Kingdom • NRC French • NRC German • NRC SwedishlFinnish • NRC Spanish • NRC Danish/Norwegian • NRC Swiss • NRC Katakana (GO Set) • Katakana (G1 Set) • DG International • Word-Processing, Greek, and Math Set • DG Line Drawing • DG Special Graphics (PC Characters) • VT Multinational • VT Special Graphics (VT Line Drawing) • ISO 8859/1.2 Characters • PCTERM Low Characters (0 hex through 7F hex) • PCTERM High Characters (80 hex through FF hex) Each of the tables displayed in this appendix show the character displayed on the screen and the decimal, octal, and hex value associated with that character. Ifno character is recorded within a space in a table, that code will produce a blank on the screen. 014-002111 A-1 United States ASCII Character Set 0 DL 16 020 10 040 °1 17 021 11 ! 33 041 21 °2 18 022 12 " 042 3 003 03 Os 19 023 13 Er 4 004 04 °4 20 024 14 Eo 5 005 05 ~ 025 15 NU 000 SH 1 001 01 Sx 002 EX 00 2 02 6 OSO 1 48 061 31 22 2 # 35 043 23 $ % 60 112 160 70 a 97 141 61 q 113 161 71 b 142 62 r 114 162 72 123 53 C 99 143 63 S 115 163 73 T 84 124 54 d 100 144 84 t 116 184 74 U 85 125 55 e 101 145 65 U 117 165 75 F 70 106 46 V 86 126 56 f 102 146 66 V 118 166 76 G 71 107 47 W g 103 147 67 W H 72 110 48 64 100 120 50 A 65 101 41 Q 81 121 51 062 32 B 66 102 42 R 122 52 3 51 063 33 C 67 103 43 S 044 24 4 52 064 34 D 66 104 44 37 045 25 5 53 065 35 E 6 54 066 36 7 55 067 37 34 36 38 30 50 '\ 006 06 ~ BL 7 007 07 11 23 027 17 BS 8 010 06 CN 24 030 18 ( 050 28 8 56 070 38 Hr 9 011 09 ~ 25 031 19 ) 41 051 29 9 071 39 I LF 10 012 OA SB 26 032 lA 58 072 3A Vr 11 013 08 ~ 27 033 lB ·· ·, FF 12 014 FS 034 < 074 3C CR 13 015 055 2D So . SI / oc 28 lC 29 Gs 035 10 14 016 OE fh 30 036 15 017 OF Us OIl & 046 , 39 047 26 27 40 IE 31 037 IF C 87 127 51 73 111 48 Y 89 131 59 i J 74 112 4A Z K 75 113 4B [ L 76 114 4C \ = 61 075 3D M 77 115 40 46 056 2E > 62 076 3E N 78 116 47 057 2F ? 63 077 3F 0 43 , 054 2C 2B 51 59 073 3B so 44 45 033 18 45 83 h 053 [1]]27 69 105 82 X + - 40 • 86 130 58 42 052 2A * so P @ P 20 21 48 0 22 025 16 Displayed Character A-2 32 98 n X 105 151 69 Y 121 171 79 j 106 152 SA Z 122 172 7A k 107 153 6B { 123 173 7B 5C 1 108 154 6C I 124 174 7C ] 93 135 50 m 109 155 } 125 175 70 1\ 94 136 6E - 126 176 7E 111 157 :::!i!i:: 90 132 SA 91 133 58 92 134 5E 79 117 95 137 SF - n 0 104 150 119 167 120 170 78 4E 4F 96 140 68 so 110 158 SF 127 In 7F Decimal Octal Hex 014-002111 NRC United Kingdom Character Set NU 0 000 00 °L 16 020 10 SH 1 001 01 °1 17 021 11 Sx 2 002 02 °2 18 022 12 EX 3 003 03 °3 19 023 13 Er 4 004 04 °4 EO 5 005 05 64 100 40 P 120 A 65 101 41 Q 81 121 51 062 32 B 66 102 42 R 3 51 063 33 C 103 43 4 064 D 0 060 30 33 041 21 1 49 061 31 34 042 22 2 £ 35 043 23 2C 024 14 $ 36 044 24 NK 21 025 15 % AK 6 006 06 Sy 22 026 16 BL 7 007 07 EB 23 027 17 Bs 8 010 08 eN 24 030 18 Hr 9 011 09 ~ LF 10 012 OA SB 26 032 lA Vr 11 013 Ec 27 033 lB + FF 12 014 FS 28 034 lC , Gs 29 035 10 RS Us os IX; cR 13 015 So 14 016 OE Sl 15 017 OF 00 Displayed Character 014~02111 ! . 25 031 19 37 045 25 & 38 046 26 , 39 047 27 40 48 so 116 164 74 E 69 105 45 U 85 125 55 e 101 145 65 U 117 165 75 6 54 066 36 F 70 106 46 V 66 126 56 f 102 146 66 V 118 166 76 7 55 067 37 G 71 107 47 W 67 127 57 g 103 147 67 W H 72 110 46 X 130 I 73 111 49 Y 131 59 Z [ 5 53 065 35 ·· ·, 58 74 112 K < 60 074 3C L 45 055 2D = 61 075 3D M 115 40 ] 30 036 IE 46 056 2E > 62 076 3E N 78 116 4E i 31 037 IF 47 057 2F 0 79 117 4F 033 lB 114 162 72 t 59 073 3B C r 100 144 64 68 J [3TI]27 98 142 62 d 67 072 3A / b 84 124 54 57 071 39 - 113 161 71 T 34 9 2C q 104 44 52 41 051 29 44 054 97 141 61 115 163 73 ) 2B a S 8 43 053 112 160 70 99 143 63 28 2A P C oso * 52 96 140 60 83 123 53 ( 42 S2 122 , S 56 070 38 052 so so @ 32 040 20 ? 83 on 3F 4A 75 113 4B 76 114 4C n \ - 68 58 h 104 150 68 i 105 151 90 132 SA j 106 152 SA 91 133 58 k 89 92 134 5C 93 135 50 94 136 5E 95 137 SF 1 m 69 107 153 6B 108 154 6C 109 155 60 n 110 156 BE 0 111 157 SF 119 167 n X 120 170 78 Y 121 171 79 Z 122 172 7A { 123 173 7B I 124 174 7C } 125 175 70 - 126 176 7E 127 :i::!"!:: In 7F Decimal Octal Hex A-3 NRC French Character Set NU 0 000 00 °l 16 020 10 SH 1 001 01 °1 17 021 11 Sx 2 002 02 °2 18 022 12 EX 3 003 03 °3 19 023 13 Er 4 004 04 °4 Eo 5. 005 05 NK 0 060 30 33 041 21 1 34 042 22 018 , a 64 100 40 P 80 120 50 • 061 31 A 65 101 41 Q 81 121 51 2 50 062 B Il6 102 R 82 122 52 £ 35 043 23 3 51 063 33 C fr1 103 43 S 123 20 024 14 $ 36 044 24 4 52 064 34 D 104 44 T 84 124 54 21 025 15 % 37 045 25 5 E 69 105 45 U & 38 046 26 6 065 36 F 70 106 46 ! . 49 32 53 065 35 42 ea 96 140 60 P 112 160 70 a ff1 141 61 q 113 161 71 b 142 62 r 114 162 72 C 143 63 S 115 163 73 d 100 144 64 t 116 164 74 55 e 101 145 65 U 117 165 75 V 86 126 56 f 102 146 66 V 118 166 76 99 83 53 85 125 98 AK 6 006 06 Sy 22 026 16 Bl 7 007 07 EB 23 ffll 17 • 39 047 27 7 0fr1 37 G 71 107 47 W 127 S1 g 8 010 08 CN 24 030 18 ( 40 050 28 8 55 070 38 H 72 110 018 X 88 130 58 h Hr 9 011 09 ~ 25 031 19 ) 41 051 29 9 S1 071 39 I 73 111 49 Y 89 131 59 i 105 151 LF 10 012 OA SB 26 032 lA * 0S2 2A ·· 58 072 3A J 74 112 4A Z 90 132 SA j 106 152 SA Vr 11 013 OB EC 27 033 lB + 43 053 2B ·• 59 073 3B K 75 113 4B 91 133 58 k 107 153 6B FF 12 014 FS 28 034 , 44 054 < 60 074 3C L 76 114 4C I 108 154 6C = 61 075 3D M 115 40 > 62 076 3E N 116 4E BS CR So SI oc 13 015 OD Gs 14 016 DE Rs 15 017 OF Us Displayed Character A-4 32 040 20 42 Ie 29 035 10 2C . 30 036 IE 31 037 IF 2D 46 055 2E 47 0S1 / 2F [3TI]27 C 45 055 033 lB ? 54 55 63 on 3F 0 n 7B 79 117 4F 0 !r 87 82 134 sc 103 147 67 104 ISO 68 69 109 155 § 93 135 50 m 1\ 94 136 n 110 155 6E 0 111 157 SF 5E - 95 137 SF W so 119 167 n X 120 170 78 Y 121 171 79 Z 122 172 7A , e 123 173 , U , 7B 124 174 7C e 125 175 - 126 176 !lill 10 7E 127 In 7F Decimal Octal Hex 014-002111 NRC German Character Set EQ 5 005 05 AK 6 006 06 BL 20 14 025 15 EB 23 027 17 BS 8 010 08 CN 030 Hr 9 011 09 ~ 25 031 19 LF 10 012 OA SB 26 032 lA * Vr 11 013 EC 27 033 18 + FF 12 014 OC FS 28 034 lC , CR So SI os 24 18 13 015 aD GS 14 016 OE RS 15 017 OF Us ( ) 26 41 051 29 9 42 052 ·· ·, 2A 43 053 28 44 054 2C 115 163 73 68 104 44 T 84 124 54 d 100 144 64 t 116 164 74 69 105 45 U 85 125 55 e 101 145 65 U 165 75 V 86 126 56 f 102 146 66 V 118 166 W 87 127 57 g 103 147 67 W 119 167 77 48 X 88 130 58 h 104 150 68 X 120 170 78 73 111 Y 131 59 i 105 151 69 Y 121 171 79 Z 90 132 SA j 106 152 SA Z 122 172 7A k 107 153 6B a 123 173 7B 1 108 154 6C 0 109 155 066 8 7 007 07 38 S 6 40 050 28 22 026 16 99 143 63 E 7 Sy 37 25 C 065 • NK 21 4 004 04 83 123 53 5 39 047 27 024 Er S D 046 °4 03 52 064 34 & °3 003 4 045 EX 114 162 72 67 100 43 % 22 19 023 13 34 042 r C 36 044 24 12 3 .. 98 142 62 51 063 33 $ 022 b R 3 °2 82 122 52 e& 102 42 # 2 CO2 02 18 B 35 043 23 Sx ! 113 161 71 81 121 51 062 17 021 11 q Q 2 °1 97 141 61 65 101 41 061 31 1 001 01 a A 1 SH < 49 50 32 53 35 54 36 F 70 106 46 37 G 71 107 47 56 070 H 72 110 55 067 38 57 071 39 I . 112 160 70 120 50 33 041 21 16 020 10 P P 48 060 30 °L 96 140 60 64 100 40 0 0 000 00 eo § 32 040 20 NU 49 89 58 072 3A J 74 112 4A 59 073 38 K 75 113 4B A 133 58 60 074 3C L 76 114 4C 0 134 .. .. .. 91 92 5C 2D = 61 075 3D M 77 115 40 U 135 50 m 46 056 2E > 62 076 3E N 78 116 4E 1\ IE . 94 136 5E n 31 037 IF / 47 057 2F ? 63 077 3F 0 117 95 137 SF 0 29 035 10 30 036 - 45 055 79 4F - 93 so 110 156 6E 111 157 SF 117 76 124 174 7C ii 125 175 7D 13 126 176 7E !!!I!! 127 177 7F Displayed [ 3 T I ] 2 7 Decimal 033 Octal Character C 18 Hex 014-002111 A-5 NRC Swedish/Finnish Character Set 32 040 17 0 000 00 SH 1 00. 01 °1 021 Sx 2 002 °2 18 022 12 °3 19 023 13 °4 20 024 14 NK 025 Sy 22 026 16 02 EX 3 003 03 4 ET 004 EO 5 005 05 AK 04 6 006 °L 7 007 07 BS ! 11 .. # )l 21 % 40 e 96 140 60 P 112 160 70 A 65 101 41 Q 81 121 51 a 97 141 61 q 113 161 71 50 062 32 B EiS 102 42 R 82 122 52 b 96 142 62 r 114 162 72 5. 063 33 C 43 S 83 123 53 C 143 63 S 115 163 73 T 124 54 d 100 144 64 t 116 160\ 74 U 85 125 SS e 101 145 65 U 117 165 75 V 118 lEiS 76 33 04. 21 1 49 06. 31 34 042 22 2 35 043 23 3 044 24 37 045 2S 52 060\ 34 D 5 53 065 35 E 69 105 066 36 F 46 V 126 56 f 7 SS 067 37 G 71 107 47 W 87 127 57 g 103 147 67 8 56 070 38 H 72 110 X 120 170 78 29 9 57 071 39 I 42 052 , , 58 072 3A , 39 047 40 050 28 26 27 CN ( 9 011 09 ~ 25 031 19 ) LF 10 012 OA SB 26 032 lA VT 11 013 OB EC 27 033 lB + 053 2B ,, 59 073 3B FF 12 014 FS 26 034 lC , 44 054 2C < CR 13 015 GS - 45 OSS 2D So 14 016 OE Rs 15 017 OF Us SI 41 051 Displayed Character Y 89 131 59 i 105 151 69 Y 121 171 79 J 74 112 4A Z 132 106 152 SA Z 122 172 7A K 75 113 4B 91 133 58 k 107 153 6B a 123 173 7B 074 3C L 76 114 4C .. A .. SA j 92 134 1 108 154 6C 0 124 174 7C = 61 075 3D M 115 40 A m 109 155 60 a 125 175 7D 78 116 4E ,. N 94 U 136 5E n 110 156 6E li 126 176 7E 0 79 95 117 4F - 137 SF 0 111 157 SF -:l:lil:l! 127 177 7F 2A 60 > 62 076 3E 47 057 2F ? on 033 18 n 73 111 49 46 C 119 167 h 056 2E LIrn27 W 130 58 30 / 66 X 036 31 037 IF 102 146 104 150 68 43 IE as 6 046 54 24 030 18 29 45 84 99 70 106 38 8 010 08 035 10 67 103 4 23 027 17 00 60\ 100 EiS 104 44 EB oc , 120 50 E 36 so P 48 OBO 30 & * , 0 20 15 06 BL HT A-6 16 020 10 NU 63 3F 48 n 0 0 88 90 sc 93 135 50 0 Decimal Octal Hex 014-002111 NRC Spanish Character Set NU 0 000 00 °L 16 020 10 32 040 20 0 48 060 30 @ 64 100 40 P 80 120 50 • 96 140 60 P 112 160 70 SH 1 001 01 °1 17 021 11 33 041 21 1 49 061 31 A 65 101 41 Q 81 121 51 a 97 141 61 q 113 161 71 Sx 2 002 02 °2 18 022 12 34 042 22 2 50 062 32 B S6 102 42 R 82 122 52 b 98 142 62 r 114 162 72 EX 3 003 03 °3 19 023 13 # 35 043 23 3 51 0S3 33 C S7 103 43 S 83 123 53 C 143 S3 S 115 163 73 ET 4 004 04 °4 20 024 14 $ 36 044 24 4 52 064 34 D 104 44 T 84 124 54 d 100 144 84 t 116 164 74 EO 5 005 05 NK 21 025 15 % 37 045 25 5 53 065 35 E S9 105 45 U 65 125 55 e 101 145 65 U 117 165 75 AK 6 006 Sy 22 025 16 & 38 048 25 6 ass F lOS 48 V 86 126 56 f 102 148 S6 V 118 166 76 aL 7 007 07 23 , 39 047 27 7 55 0S7 37 G 71 107 47 Ea 027 17 W 87 127 57 g 103 147 67 W as 8 010 CN 24 030 18 ( 40 050 28 8 56 070 38 H 72 110 48 X 86 130 58 h ) 41 051 29 9 57 071 39 I 73 111 49 Y 89 131 59 4A Z 90 132 SA [ OS 08 ! . HT 9 011 09 ~ 25 031 19 LF 10 012 OA Sa 25 032 lA * VT 11 013 OB EC 27 033 19 + FF 12 014 Fs 28 034 lC , oc 54 36 58 072 3A J 59 073 3B K 75 113 49 < 60 074 3C L 76 114 4C 20 = 61 075 30 M N 2A 43 053 29 44 054 2C 13 015 00 Gs 29 035 10 - So 14 016 RS 30 036 IE . 46 056 2E > 62 076 3E 31 037 IF / 47 057 2F ? on Sl 15 017 OF Us 70 . ., 42 052 CR DE sa 45 055 S3 3F 0 74 112 - 91 133 58 N 92 134 5C 115 40 ] 93 135 50 78 116 A 94 136 n 5E 4E 78 117 4F - 95 137 SF 99 119 167 n 104 150 X 120 170 78 i 105 151 69 Y 121 171 79 j 152 SA Z 122 172 7A k sa lOS 107 153 6B { - 123 173 7B 1 108 154 6C n 124 174 7C m 109 155 60 } 125 175 70 n 0 110 156 6E - 111 157 :i:!:i:,: SF 126 176 7E 127 In 7F r Displayed Character 014-002111 [3TI]27 C 033 lB Decimal Octal Hex A-7 NRC Danish/Norwegian Character Set NU 0 000 00 °L 16 020 10 48 .. 0 060 20 30 A 64 100 40 P 80 120 50 a 96 140 60 p 112 160 70 33 041 21 1 49 061 31 A 65 101 41 Q 81 121 51 a 97 141 61 q 113 161 71 34 042 22 2 50 062 32 B 66 102 42 R 82 122 52 b 98 142 62 r 114 162 72 # 35 043 23 3 063 C 103 43 83 123 C 143 63 T 84 124 54 SH 1 001 01 °1 17 021 11 Sx 2 002 02 °2 022 3 003 03 °3 023 4 004 04 °4 20 024 14 II 36 044 4 064 24 34 D 68 104 44 EO 5 005 05 NK 21 025 15 0/0 37 045 25 5 53 065 35 E 69 105 45 U AK 6 006 06 Sy 22 025 16 & 38 046 25 6 54 066 36 F 70 106 46 V SL 7 007 07 ES 23 027 17 • 39 047 27 7 55 067 37 G 71 107 47 W 8 56 070 38 9 ·· ·• Ex Er Ss 8 010 Hr LF Vr FF 9 011 09 10 012 OA 11 013 os 12 014 OC 13 19 13 ( ~ 25 031 19 ) 051 Ss 032 lA * 42 052 2A 27 033 18 + 43 053 28 • 44 054 2C - 45 055 2D CN EC FS So 14 016 OE RS 15 017 OF Us GS Displayed Character 41 29 26 28 034 lC 015 Sl . 12 40 050 28 CR 00 18 ! 24 030 18 08 A-8 32 040 29 035 10 30 036 IE · 31 037 IF / [3TI] E C : lB 51 33 52 67 H 72 110 46 071 39 I 111 49 58 072 3A J 59 073 38 K 67 73 74 112 4A 75 113 48 S 115 163 d 100 144 64 t 116 164 74 85 125 55 e 101 145 65 U 117 165 75 86 125 56 f 102 146 66 V 118 166 76 g 103 147 67 W 87 127 67 n 105 151 69 Y 121 171 79 j 106 152 Z 122 172 7A k 107 153 68 re 123 173 78 92 134 5C 1 106 154 6C f6 124 174 7C 0 93 135 109 155 0 125 175 .. 50 m n 110 156 ii 128 176 7E 0 Y Z IE 68 130 56 89 131 59 90 132 SA 91 133 58 < L = 61 075 3D M 115 4D 46 056 2E > 62 076 3E N 78 116 4E U 94 136 5E 47 057 2F ? on 0 79 117 4F - 95 137 SF 63 119 167 X X 76 114 4C 3F 73 120 170 78 60 074 3C n 99 S 53 0 A h i 104 150 68 SA so BE 111 157 SF a !!::!!::: 7D 127 In 7F Decimal Octal Hex 014-002111 NRC Swiss Character Set 0 000 00 °L 16 020 10 SH 1 001 01 °1 17 D21 11 Sx 2 002 02 °2 18 022 12 3 003 03 °3 023 4 004 04 °4 20 024 14 5 005 05 NK 21 025 15 AK 6 006 06 Sy Bl 7 007 07 BS NU 32 040 20 48 ... a 54 100 40 P 80 120 50 A 65 101 41 Q B 102 42 C 0 96 140 60 P 112 160 70 81 121 51 a 97 141 61 q 113 161 71 R 82 122 52 b 98 142 62 r 114 162 72 67 103 43 S 83 123 53 C 99 143 63 S 115 163 73 D 68 104 44 T 84 124 64 d 100 144 64 t 116 164 74 E 69 105 45 U 85 125 55 e 101 145 U 165 75 F 70 106 46 V 86 126 56 f V 118 166 76 W 119 167 77 0 060 1 49 061 31 2 062 043 23 3 D63 33 $ 36 044 24 4 % 37 045 25 5 D65 & 36 046 26 6 64 D66 36 ES 23 027 17 • 39 047 27 7 55 067 37 G 107 47 8 010 08 CN 24 030 18 ( 40 050 28 8 56 070 38 H HT 9 011 09 ~ 25 031 19 ) 41 051 29 9 57 071 39 I IF 10 012 OIl Ss 26 032 lA 58 072 3A J 11 013 EC • 59 073 38 K < 60 074 3C L = 61 075 3D 46 056 2E 47 057 2F EX ET EO VT 19 22 026 27 GS 29 035 10 So 14 016 RS 30 035 IE Us Displayed Character 014-002111 31 037 IF 45 055 - 2D / 52 D64 34 53 35 71 , 65 102 146 66 117 W g 72 110 48 X 88 130 58 h 104 150 68 X 120 170 78 73 111 49 Y 131 59 i 105 151 69 Y 121 171 79 Z 90 132 SA j 106 152 SA Z 122 172 7A e 91 133 58 k 114 4C ~ 134 5C M 77 115 40 ... 93 135 > 62 076 3E N 78 116 4E ? 63 077 3F 0 79 117 4F ·· 43 053 2B ZC 51 66 103 147 67 2A 44 064 50 32 1\ 87 127 57 42 052 * • 13 015 00 15 017 OF 35 U 28 034 lC CR SI 34 042 22 ... 18 FS DE .. + 033 12 014 OC FF 041 21 13 16 DB 33 ! 30 74 112 4A 75 113 4B 76 e 1\ e - 89 92 50 94 136 5E 95 137 SF 1 m n 0 107 153 sa 108 154 6C 109 155 so 110 156 a 0 i.i 6E e" 111 157 :l:[J:.[: SF 123 173 7B 124 174 7C 125 175 7D 126 176 7E 127 177 7F E ~ Octal ~ C Hex DeCimaI 1B A-9 NRC Katakana (GO) Character Set 0 DL 16 020 10 °1 17 021 11 °2 18 022 12 32 @ 64 100 40 P 50 120 50 • 96 140 60 P 112 160 70 48 061 31 A 65 101 41 Q 81 121 51 a 97 141 61 q 113 161 71 2 50 062 32 B 66 102 R 82 122 52 b 98 142 62 r 114 162 72 3 51 063 33 C 67 103 43 S 83 123 53 C 143 63 S 115 163 73 4 064 D 68 104 44 T 84 124 54 d 100 144 64 t 116 164 74 5 53 065 35 E 69 105 48 U 125 55 e 101 145 65 U 117 165 75 6 54 066 36 F 70 106 48 V S6 126 56 f V 118 166 76 7 55 067 37 G 71 107 47 W 87 127 57 28 8 56 070 38 H 72 110 48 X 130 58 41 051 29 9 57 071 39 I 73 111 48 Y 2A . 58 072 3A J 74 112 4A 43 053 2B ., 59 073 3B K NU 000 SH 1 001 01 Sx 002 EX 3 003 03 °3 023 13 # Er 4 004 04 °4 20 024 14 $ EO 5 005 05 NK 21 025 15 AK 6 006 06 Sy 026 BL 7 007 07 EB 027 17 BS 8 010 08 CN 24 030 18 ( 40 050 Hr 9 011 09 ~ 25 031 19 ) LF 10 012 OA SB 26 032 lA * Vr 11 013 OB EC 27 033 lB + FF 12 014 Fs 28 034 Ie CR 13 015 Gs 29 035 10 So 14 016 OE RS 30 038 IE SI 15 017 OF Us 31 037 IF 00 2 02 oc 00 19 ! .. 0 060 30 33 041 21 1 34 042 22 35 043 23 36 044 24 % 37 045 25 16 & 046 25 23 , 39 047 22 38 27 42 • - . / 48 20 040 052 44 054 52 34 60 3D M 115 40 62 076 3E N 116 4E 0 79 117 4F 074 3C 45 055 2D = 075 46 056 2E > 2F 61 ? 4B L < 057 75 113 76 114 4C 2C 47 42 63 on 3F n 78 es 99 102 146 66 g 103 147 67 W h 104 ISO 68 X 120 170 78 131 59 i 105 151 69 Y 121 171 79 Z 90 132 SA j 106 152 Z 122 172 7A [ 91 133 5B k 107 153 68 ¥ 92 134 5C 1 ] 93 135 50 m 1\ 94 136 88 89 5E - 95 137 SF n 0 SA 108 154 { 119 167 n 123 173 7B I 124 174 7C } 125 175 7D 6E - 126 176 7E 111 157 ~~~~~m~~ 127 In 7F ec 109 155 so 110 156 SF i:~:~:~:i: D"spla Decimal I yed~27 033 Octal lB Hex Character C A-10 014-002111 Katakana (G1) Character Set 0 16 32 000 o:!O Q.4O 00 10 20 1 001 01 17 021 11 2 18 002 022 02 12 3 003 03 023 4 004 04 13 20 024 14 r 35 , 36 11 7 39 047 27 ,{ 40 050 r; 41 051 I 052 2A • 6 006 06 22 026 16 7 007 07 23 027 17 8 010 08 Z4 37 045 211 29 10 012 M 26 032 11 0\3 27 033 lB :t 43 053 2B 28 034 lC -p 44 054 2C 45 08 12 0\4 oc 42 13 0\5 00 035 .J. 055 10 14 0\6 OE 30 036 IE :3 056 I~ 47 15 017 OF Displayed Character 29 31 037 IF 1 r; 3B 046 26 15 lA 061 31 =;3 21 09 -p 25 Z4 025 25 031 19 060 30 I /f 044 5 18 22 043 23 05 030 34 042 J 005 9 0\1 014-002111 19 33 041 21 0 - 2D 46 2E Ofit 2F [2ll] .J. 055 2D =t= ~ IT :J 48 49 50 0Ii2 32 51 063 33 52 064 34 53 065 35 54 066 36 55 067 37 56 070 3B fit 071 39 58 072 3A '51 =f 64 100 40 I~ - 80 120 50 96 140 60 112 160 70 ~ 81 121 51 97 141 61 113 161 71 66 102 42 J 82 122 52 98 142 114 182 72 S1 -E 83 123 53 65 10\ 41 T 103 43 ~ sa 104 44 1 69 105 45 - - X 70 106 48 71 107 47 ~ 72 110 ) 73 J1 48 111 49 116 164 74 85 125 55 101 145 65 117 165 75 86 126 56 102 146 66 118 166 76 87 127 103 147 119 167 fit S1 n 88 104 150 120 170 78 121 171 59 105 151 69 130 58 89 131 sa 79 75 113 4B D 91 133 123 173 58 107 153 6B 76 114 J 92 134 5C 108 154 6C 124 174 93 109 135 50 155 6D 125 175 70 94 136 156 110 126 5E 6E 7E 111 127 I< 61 075 3D t 62 076 3E J1; 78 116 4E ~ 79 117 3F J~ 100 144 64 B4 122 172 7A 074 3C on I) 124 54 106 152 SA :J ~ 7 liS 163 73 99 90 132 SA t 7 'I 63 l ::3 - 143 63 II' 073 38 60 r 62 74 112 4A ry 59 --- 4C n 115 40 4F - ~ " 0 95 137 SF 7B 7C 176 1fit In SF 7F Decimal Hex Octal A-11 DG International Character Set 48 , 30 A 49 061 31 A 11 50 0E2 32 A TM 51 063 33 f 064 24 3 37 045 25 22 026 16 n 38 048 26 7 007 07 23 027 17 ¢ 047 8 010 08 24 030 18 9 011 09 16 020 10 1 001 01 17 021 11 --, 041 2 002 02 18 022 12 1/2 042 3 003 03 19 023 Jl 35 043 23 4 004 04 20 024 14 2 36 044 5 005 05 21 025 15 6 006 06 13 040 20 33 21 34 22 39 27 40 £ 050 28 25 031 19 S!. 41 051 29 10 012 OA 26 032 lA Q 42 052 11 013 DB 27 033 43 053 2B 18 12 014 28 034 lC l 13 015 00 29 035 10 © 45 055 2D 14 016 DE 30 036 IE ® 48 056 2E 15 017 OF 31 037 IF Displayed Character 44 054 2C 47 t OST 2F [ill] AO : 145 - 64 100 40 N 65 101 41 0 81 121 51 , a , a 102 42 0 82 122 52 a 1\ 98 142 62 A 67 103 43 0 83 123 53 a 34 A 68 104 44 0 84 124 54 ¥ 53 065 35 A 69 105 45 0 85 125 55 ± 54 066 IE 70 106 46 flJ 126 56 71 107 47 107 153 68 123 173 92 134 5C a 108 154 6C 124 174 109 155 125 175 £ 110 156 6E 126 176 II 111 157 6F 127 LL 93 135 b 136 SE F 64 •.. 115 163 73 50 94 95 137 SF tJ so 7B 7C 7D 7E In 7F Decimal Octal Hex A-15 VT Multinational Character Set 128 200 80 Os 129 145 221 91 all 81 10 N E H S 130 148 202 82 222 92 131 147 203 223 83 93 S 2 S 3 ¢ £ 0 176 260 so 161 241 Al ± 162 2 242 A2 In 261 Bl 178 262 B2 163 243 3 AS 179 263 B3 .. A , A A A ... A .. 192 300 co 193 301 Cl 194 302 C2 195 303 C3 132 148 164 180 224 94 244 A4 264 84 A 304 C4 133 149 165 245 181 0 197 20S 85 22S 95 ¥ 265 AS J.1 11 266 . 183 as 134 150 206 86 226 166 248 96 AS 135 207 87 151 § 167 247 A7 168 250 270 AS B8 227 97 136 210 152 88 230 98 II 137 211 89 153 231 99 © 138 212 154 232 SA 139 213 8B °1 155 233 140 214 ST 156 234 8C 1 .I 160 240 AD 204 -84 SA R 144 220 90 141 215 eo 142 216 BE 143 217 SF 9B Jl « 182 B6 267 B7 184 169 251 1 185 271 196 A 305 C5 JE 306 9 199 307 C7 E 310 .. , 198 C6 200 ce 187 273 BB E 313 CB 1/4 274 BC 1/2 189 275 BD I 190 276 A BE .. 9C AC 157 235 173 255 90 AD 158 174 236 9E 256 AE 159 237 9F 175 257 AF l 188 191 277 BF ? 61 075 3D 62 076 3E 63 077 3F 83 123 63 68 104 44 58 072 SA = S C 42 73 111 074 3C R 82 122 52 67 103 43 I < Q 81 121 51 102 071 39 80 80 120 50 B 9 51 P L 49 75 113 4B 76 114 4C 51 88 89 90 M 77 115 40 ] 93 135 50 N 78 116 4E A 136 0 79 117 4F 94 5E 95 137 SF • 112 160 70 96 140 60 141 61 113 161 71 98 142 62 114 162 72 FF 99 143 63 115 163 ~ 100 144 64 116 164 74 LF 101 145 I - 65 117 165 75 102 146 66 118 166 76 ± 103 147 67 119 167 77 tt 104 150 120 170 78 Vr 105 151 69 W 106 152 97 I'll! IT 0 ~ I L I I 73 ~ 68 6A 107 153 58 108 154 6C 109 155 6D 110 156 6E 111 157 SF ::;; 121 171 79 ~ 122 172 7A 1t 123 173 7B ::j: 124 174 £ 125 175 7D 7C . 126 176 Iii!! 127 177 7F 7E ~ ~~mal Character ~ Hex 014-002111 A-17 ISO 8859/1.2 Character Set 128 200 80 D8 129 201 81 144 160 220 240 90 AO eo 161 241 AI ± 177 261 162 2 262 221 91 130 1<46 202 222 82 92 131 147 203 83 Z23 93 132 1<48 ID 204 224 NE 205 225 134 ISO 206 226 84 94 133 149 85 9S 86 151 W 97 136 210 152 230 98 88 137 211 69 153 231 138 212 154 99 232 SA SA 139 213 88 140 214 8C R I 8 2 8 3 141 215 ¢ C I 81 ISS 233 98 156 234 9C 157 so 235 9D 142 216 236 BE 9E 143 217 SF 159 237 179 ¥ 165 245 AS I I 166 2<46 § 167 247 A7 B 3 , AS 168 2SO AS 181 265 11 182 266 . 183 , 1 A9 252 171 253 AB -, 172 - 173 254 AC 2SS AD 174 ® - 256 AE 175 257 AF 180 J.l 169 251 170 263 B3 264 B4 A4 Q as B6 267 B7 184 270 B8 185 , A 1\ 192 300 co 193 322 - 303 C3 A 304 9 " E , 196 C4 197 305 CS 198 308 C6 199 307 C7 200 310 C6 201 , 212 - 0 .. 0 X flJ " U 202 , CA U P 191 277 BF .. I 316 CE 1\ .. , 207 317 CF 216 330 "e Il6 217 331 Il9 , e 0 229 - 345 E5 230 3<46 E6 231 347 0 0 721 335 DD 222 336 DE 223 J3 337 DF FO 242 362 F2 243 363 F3 244 364 F4 24S 365 F5 246 366 F6 247 + 367 F7 3SO E8 fJ 248 370 233 351 "U , E7 232 E9 220 334 DC 206 I !; 1\ E4 U 1\ BE 327 D7 228 344 1\ 190 276 215 0 235 Y 3/4 re E3 e 315 CD 275 0 a 343 219 333 DB I 1/2 CC 205 Il6 -a 727 U BD Be 326 "0 , E2 U 204 189 os 214 226 342 EA "I , 314 325 n 352 313 CB 188 274 213 341 EI a a - 241 361 FI e E 1/4 324 D4 240 360 1\ 312 203 D3 1\ a 218 332 DA E .. 211 1\ 0 1\ BB a! 323 186 272 187 210 0 311 C9 273 225 0" C2 A IE , a 194 195 0 340 EO N 302 A - "a 301 CI 224 208 320 DO 209 321 Dt A .. i> E » l " A 271 B9 BA AA « 178 163 164 244 © Bl B2 Jl .. 176 260 A2. 243 A3 158 SF 242 £ 96 135 207 87 H 8 .I 145 0 234 353 EB F8 249 371 F9 2SO 372 FA U 251 373 FB U 2S2 374 Fe "1 , 236 1 3SS Y 375 FD 238 f 254 EE 239 357 EF Y 377 FF A i ..1 354 EC 237 ED 356 , 253 376 FE 2SS Displayed ~ ~ral Character ~ Hex A-18 014-002111 PCTERM Low Character Set (0 hex through 7F hex) 0 000 00 • 16 020 10 @ 1 001 01 ~ 17 D21 11 e 2 002 02 ! • • 3 003 03 ... 32 040 20 0 48 060 30 @ 64 100 40 P ! 33 041 21 1 49 061 31 A 65 101 41 18 0lI2 12 " 34 042 2 062 32 B E6 102 42 !! 19 023 13 # 043 23 3 51 063 33 C 4 004 04 11 024 $ 36 044 24 4 064 5 ODS 05 § 21 025 15 % 37 045 25 5 53 065 3S & 38 046 26 6 17 39 047 27 .. 6 DD6 06 • 7 007 07 0 22 026 16 23 0Zl i 24 030 18 9 011 09 i 25 031 19 ~ 26 032 lA 11 013 os ~ 12 014 DC f 13 015 00 JJ 14 016 -0 14 8 010 08 10 012 OA d -1. 20 f- L H A DE 15 017 OF ... 27 033 18 28 034 Ie 29 03S 10 30 036 IE 31 037 IF 80 120 • 96 140 60 P 112 160 70 Q 81 121 51 a 97 141 61 q 113 161 71 R 82 122 52 b 98 142 62 r 114 162 72 103 43 S 83 123 53 C 99 143 63 S 115 163 73 D 66 104 44 T 84 124 54 d 100 144 64 t 116 164 74 E 105 45 U 85 125 55 e 101 145 65 u 117 165 75 36 F 70 106 46 V 126 56 f 102 146 E6 V 118 lE6 76 7 55 067 37 G 71 107 47 W g 103 147 67 W ( 40 050 28 8 56 070 38 H 72 110 48 X 130 58 h 104 150 68 X ) 41 051 29 9 071 39 I 73 111 49 Y 89 131 59 i 105 151 69 Y ·· ·, 58 072 3A J 74 112 4A Z 122 172 7A 59 073 38 K { 123 173 7B , 22 3S * 42 052 2A + 43 053 2B , 44 054 . / 2C 45 055 2D 46 056 2E 47 067 2F < so 52 34 54 065 fit 60 074 3C L = 61 075 3D M > 82 076 3E N ? 63 on 3F 0 67 69 so 86 87 127 fit 86 Z 9D 132 SA j 106 152 SA 4B [ 91 133 58 k 107 153 68 76 114 4C \ 75 113 n 92 134 sc 115 4D ) 93 135 78 116 1\ 94 136 50 4E 5E 79 117 4F 95 137 - SF 1 m n 0 108 154 ec 109 155 6D 110 156 6E 111 157 SF I } A 119 167 n 120 170 78 121 171 79 124 174 7C 125 175 7D 126 176 7E 127 177 7F . ~DeCimai Displayed f033 Octal Character 18 Hex 014-002111 A-19 PCTERM High Character Set (80 hex through FF hex) 9 i.i , e 128 200 80 129 201 81 130 202 82 a 131 203 83 a 132 204 84 A , a 0 a ~ 133 205 85 134 208 86 135 207 87 e 136 210 86 e 137 211 89 , e 138 212 , E 144 220 90 , a , re 145 221 91 1 £ 146 222 92 0 A 147 223 0 93 , n 0 148 225 95 N A 150 225 j! u , - U 151 227 97 Y 152 230 98 i.i ---, 170 252 AA ¢ 155 233 9B 1/2 171 253 AB 140 214 8C £ 156 234 9C 1/4 172 254 1 141 215 ¥ 157 23S 9D I A 142 216 It 158 236 9E f 159 237 9F ..1 It. 1 , .. 0 A 139 213 8B so BE 143 217 8F Displayed Character « 55 176 262 B2 194 3C2 C2 210 322 r 226 342 ~ 242 362 F2 179 263 B3 195 303 C3 LL 211 323 D3 1t 227 343 E3 S 243 363 F3 '== 212 324 D4 1: 228 344 E4 ( 244 0' 229 345 E5 J 245 365 F5 ~ 230 346 E6 + 366 ::= 247 367 F7 0 248 370 Fa ~ rn A ~ D2 B5 182 266 B6 == 198 306 CS 183 267 B7 - 199 307 C7 215 327 07 't 231 347 E7 184 270 B8 -= 200 310 C8 216 330 cI> 232 350 E8 185 271 B9 rr= 201 311 C9 e 233 351 E9 187 273 BB WL r-r F r-- 213 325 E2 197 305 C5 186 272 SA n- I os 214 326 os D8 !-- 217 331 D9 202 312 CA 218 332 OA n 234 352 203 313 CB 219 333 DB 0 235 353 204 314 220 334 20S 315 CD 221 335 DO <1> 3SS e 238 356 n 239 357 173 255 AD UJ 169 275 BO 174 256 ~ 190 276 BE ~p= 206 316 CE 222 336 DE n 191 I 207 317 CF 223 337 OF AF 233 98 241 361 Fl ~ IC, 175 257 ¢ ~ ± 168 274 BC AE » 225 341 El 181 265 154 232 9A SA ~ = r- 99 209 321 01 165 245 AS 169 251 AS 0 193 301 Cl 196 304 C4 168 250 A8 153 231 261 81 180 264 84 l A 240 360 FO - 167 247 A7 Q. - 164 244 A4 166 246 1--1 AS 96 224 340 EO eo A2 - 148 224 94 0 , ex lTl 163 243 A3 U 208 320 DO 161 241 Al 162 242 , co 176 260 Il I L 192 300 160 240 AO f 2Tl BF cc DC 00 EA EB •• r 236 3S4 EC 11 237 2 ED EE EF • 364 F4 246 F6 249 371 F9 250 372 FA 251 373 FB 252 374 FC 2S3 375 FO 2S4 376 FE 255 an FF Decimal Octal Hex End of Appendix A-20 014-002111 Appendix B National Language Keyboards This appendix contains the national-language keycap mappings for both the l07-key Data General proprietary keyboard and the lOl-key IBM PC AT-style keyboard. 014-002111 8-1 Canadian/English 107-key Keyboard B-2 Canadian/French 107-key Keyboard 014-002111 Danish 107-key Keyboard 014-002111 French 107-key Keyboard B-3 German 107-key Keyboard 8-4 Italian 107-key Keyboard 014-002111 Katakana 107-key Keyboard 014-002111 Norwegian 107-key Keyboard 8-5 Spanish 107-key Keyboard 8-6 Swedish/Finnish 107-key Keyboard 014-002111 Swiss/French 107-key Keyboard 0102111 Swiss/German 107-key Keyboard B-7 United Kingdom 107-key Keyboard 8-8 United States 107-key Keyboard 014-002111. Canadian/French 102-key Keyboard 01~02111 Danish 102-key Keyboard 8·9 French 102-key Keyboard 8-10 German 102-key Keyboard 014-002111 ~ Italian 102-key Keyboard 014-002111 Norwegian 102-key Keyboard 8-11 Spanish 102-key Keyboard 8-12 Swedish/Finnish 102-key Keyboard 014-<>02111 o ~ .... ..... o ~ ~ [;1J ~ ~ ~ ~ ~~ " _. CDtn , finclude /* * This routine can be used to condition a communication line for binary I/O * * * when writing a C program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. */ void set up terminal() { - if (freopen("@input","j",stdin)==NULL) fprintf(stderr,"Unable to open your terminal for binary input.\n")i exit (1) ; } setbuf(stdin,NULL)i if (freopen ("@output", "k", stdout) ==NULL) fprintf(stderr,"Unable to open your terminal for binary output.\n")i exit(2)i } /* * These routines may be used on any system that uses ASCII to provide support * for a native-mode DG terminal in a C program. */ /* This flag is non-zero if the terminal is expecting real hex data */ static int in_DG_Unix_mode=O; /* This variable saves the current attributes for comparison */ static int old_attr=Oi /* This is the failing character in the return sequence */ static int offending_characteri /* This macro insures that a given character is printable */ idefine ccs(c) ««c)&Ox7F»=' '&&«c)&Ox7F) pair. * 255. */ int fputnn (n, f) int n; FILE *f; { if (in DG Unix mode) - return -fprintf (f, "%02X", n) ; else { fputc('0'+(n»4),f); fputc('O'+n&OxF,f); /* if in Unix mode */ /* then send real hex */ /* otherwise generate DG hex */ } return 2; /* * Get a DG digit. * and 15 or EOF. */ int fgetn(f) FILE *f; /* two characters shipped */ 'f' is the input device. Returns a number between 0 { int temp; offending character=fgetc(f); /* get character from host */ if (offending character==EOF) return EOF: if (in DG Unix mode) { /* upcase alpha */ - temp=toupper(offending character}: if (temp<' 0' II temp>'F' II temp<'A' && temp>' 9') { fprintf(stderr,"\n\15Illegal character ' %c' (%02X) \n\15", ccs (temp) , temp) ; return EOF: } return temp>' 9' ? temp-'A'+10 : temp-'O': /* decode hex */ } temp=offending character: i f (temp<'@' IT temp>'O') { fprintf (stderr, "\n \15Illegal character ' %c' ccs(temp),temp); return EOF; (%02X) \n\15", } return temp&OxF; /* decode DG hex */ /* * Decode a DG mode pair. * EOF */ int fgetnn (f) FILE *f: Returns an integer in the range 0 to 255, or { int temp,t2; if «temp=fgetn(f»==EOF) return EOF; if «t2=fgetn(f»==EOF) return EOF: return (temp«4) + t2; C-4 /* get one parm */ /* get the second */ /* combine them */ 014-002111 /* * * Set DG Unix mode. Note that this will work whether or not DG Unix mode is currently enabled. */ void set DG unix (f) FILE *fi { in DG Unix mode=li fputs ("\036P@1", f) i /* set the global flag */ /* send the enter-unix-mode sequence */ /* * Reset DG Unix mode. currently enabled. */ void reset DG unix (f) FILE *fi- * Note that this will work whether or not DG Unix mode is { in DG Unix mode=Oi fputs("\036P@0", f) i /* clear the global flag */ /* send the exit-unix-mode sequence */ /* * Example of DG mode Write Window Address command. * * Note that this is not generally useful with DG Unix Mode. '1' is line number (0 to 23) and 'c' is column number (0 to 126). */ void write window address(l,c,f) int l;-Ci FILE *fi { fputc('\20',f)i fputc«char)c,f); fputc«char)l,f)i /* Write ctrl-P header */ /* Write column */ /* Write row */ /* * * Example of DG mode Write Screen Address implementation. work with DG unix mode. This command will */ void write screen address (l,c,f) int l;-Ci FILE *fi { fputs("\36FP",f)i fputnn(c,f)i fputnn(l,f)i 014-002111 /* Write <036>FP header */ /* Write column */ /* Write row */ C-5 /* * Expect a certain fixed response from the terminal. * Returns 0 for success, 1 for failure. */ int fexpect (s,f) char *s; FILE *f; { int i; while (*s) /* while there are characters, check them */ if (*s != (i=fgetc(f») { fprintf(stderr,"\n\15Got '%c' (%02X) while expecting '%c' (%02X).\n\15", ccs(i),i,ccs(*s),*s); return 1; } else return 0; s++; /* everything compared -- return OK status */ /* * Example testing program. This will send the cursor to all 0200 screen * addresses and make sure that the cursor actually gets there. * Returns 0 for success, 1 for failure. */ int test (func, fin, fout) void (*func) (/* int,int */); FILE *fin,*fout; /* OG C doesn't like ANSI prototypes */ { int l,c,rc,rl; for (1=0;1<24;1++) /* loop over rows and columns */ for (c=Oic<80;c++) { (*func) (l,c,fout)i /* position the cursor */ fputs("\36Fb",fout); /* read position */ if (fexpect(''\3608'',fin)) { /* expect header */ printf("\n\15Bad Read Screen Address return header.\n\15"): return 1: } rc=fgetnn(fin)i /* get column data */ if (rc===EOF) { printf("\n\15Error in column data returned.\n\15"): return 1: } r1=fgetnn(fin)i /* get row data */ i f (rl==EOF) { printf("\n\1SError in row data returned.\n\1S"); return 1; } if (rc!=c I I rl != 1) { printf("\n\15Went to position %d,%d but read back %d,%d\n\15",1,c,rl,rc); return 1i } return 0; C-6 014-002111 /* * Driver for above testing routine. This will call the above test routine and * direct it to use Write Window Address and Write Screen Address. */ int run_test (argc,argv) int argc; char **argv; { /* Go into binary mode */ set_up_terrninal(); /* Test the write-window-address command */ fputs("\14Testing Write Window Address ... ",stdout); if (test (write window address,stdin,stdout» return-l; /* Test the write-screen-address command */ fputs("\14Testing Write Screen Address ••. ",stdout); if (test(write screen address,stdin,stdout» return-l; /* Sucessful! */ fputs("\nDone",stdout); return 0; /* * Turn off the indicated attributes. */ (Internal routine.) static void reset attrs(attrs,f) int attrs; FILE *f; { int i,j; static char *dg_off[]={"\35","\36E","\25","\17"}; if (attrs) for(i=1,j=O;i<16;i«=1,j++) if (i&attrs) printf(dg_off[j]); /* * Turn on the indicated attributes. */ static void set_attrs(attrs,f) int attrs; FILE *f; (Internal routine.) { int i,j; static char *dg_on[]={"\34","\36D","\24","\16"}; if (attrs) for(i=1,j=O;i<16;i«=1,j++) if (i&attrs) printf(dg_on[j]); 014~02111 C-7 /* * Set the attributes to the given state with as few commands as possible. */ void change attributes (attr, f) int attr; FILE *f; { reset attrs«attrAold attr)&old attr,f); set attrs «attrAold attr) &attr, f) ; old=attr=attr; - /* * Constants for use with above routine. */ idefine #define #define #define DIM REVERSE UNDER BLINK 1 2 4 8 /* * Read binary information from 'fp' and output it in PINK style using D400 * commands to 'f'. */ #define linend(chr) { change_attributes(DIM,f); fputc(chr,f); ch='\n'; } void show file(fp,f) FILE-*fp,*f; { int ch,chlast=O,attrs; while «ch=fgetc(fp» !=EOF) attrs=O; if (ch > 127) { /* if high bit set */ attrs = UNDER; /* then turn on underscore */ ch -= 128; if (ch < 32) { /* convert if control code */ attrs 1= DIM; ch+='@' ; } i f (ch == 127) { attrs 1= DIM; ch '-' ; } else { i f (ch == 127) { attrs = DIM; ch = ' - ' ; /* convert if control code */ } i f (ch < 32) { attrs = DIM; switch (ch) { /* special line-end symbols */ case '\n': if (chlast==' ' t linend (' I'); break; case '\r': linend('<') ; break; case '\14': linend ( , *, ) ; break; C-8 014-002111 default: ch+=64; } change attributes (attrs,f); fputc (ch, f) ; chlast=ch; /* set new attributes */ /* send out the character */ } fclose(fp}; /* * Main routine for example code above. This program will read any number of * input files and show the output in PINK format. */ int show (argc, argv) int argc; char **argv; { FILE *fp; if (argc<2) { fputs("Usage:\n\tSHOW [file-name [file-name .•. ]]\n",stderr); return 0; } set up terminal(); while (*++argv) /* for each given file */ if (access (*argv, fprintf (stderr, "%5 does not exist! \n", *argv) ; else if (access (*argv,4» fprintf(stderr,"Insufficient access rights on %s!\n",*argv); else if «fp=fopen (*argv, "j"» ==NULL) fprintf (stderr, "Cannot open %s! \n", *argv) ; else if (argc>2) { /* if more than one file, give names */ change attributes (0); printf("\nFile: %s\n",*argv); 0» } show file(fp,stdout); } - /* display the file */ change attributes (O,stdout); return-O; /* Main program */ int main (argc,argv) int argc; char **argv; { char str[256]; printf("Run (S)how or (T)est? "); if (gets (str}) switch(tolower(*str» case's': return show(argc,argv}; case't': return run_test(argc,argv}; } return 1; 014-002111 e-g Data General Native-Mode "Fortran 77" C dg mode.f77 C DG Native mode demonstration. C C Initial version 01JUN90. C C C C C C C Copyright (c) 1990 by Data General Corporation. Non-exclusive license to use, distribute, and modify this code is hereby granted without monetary consideration, provided this copyright message is included in all such derivative works. Standard disclaimers regarding merchantability, suitability for a particular purpose, et cetera, all apply. This code is distributed with no warranty whatsoever. C C C C This routine can be used to condition a communication line for binary I/O when writing an F77 program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. subroutine set up terminal (iin,iout) integer iin,iout integer in DG Unix mode, old attr common /DGTERM/ in:=DG_Unix_mode,old_attr C Set I/O to binary. open(unit=iin,file='@input' ,screenedit='no',maxrecl=1, 1 delimiter='include',force='yes';iointent='input', 2 mode='binary' ,err=100) open(unit=iout,file='@output',carriagecontrol='none', 1 screenedit='no',force='yes',iointent='output',mode='binary', 2 err=100) C Reset global variables. in DG Unix mode=O old att=Oreturn 100 1 continue write(*,l) format(' Unable to open your terminal as a binary device.') stop end C These routines may be used on any system that uses ASCII to provide support C for a native-mode DG terminal in an F77 program. subroutine sendnn(n,iout) integer n,iout C-10 014-002111 C Send a DG pair. C 255. iout is the output device, and 'n' is between 0 and intrinsic mod integer in DG Unix mode, old attr common /DGTERM/ in=DG_Unix_mode,old_attr integer*2 czero data czero/2HO / integer*2 cl,c2 1 2 if (in DG Unix mode.ne.O) then write (iout, IT n else cl=czero + (n/16)*256 c2=czero + mod(n,16) *256 write (iout,2) c1,c2 endif format (Z2.2) format (2Al) return end integer function getn(iin) integer iin C Get a DG digit. ~~n is the input device. C and 15 (or -1 for EOF) . Returns a number between 0 intrinsic ichar integer in DG Unix mode, old attr common /DGTERM/ in-DG Unix mode, old attr character ch - integer ich C Read in the character. read (iin, 1,err=100,end=100) ch 1 format (AI) C Strip high bit. ich=ichar(ch) if (ich.ge.128) ich=ich-128 if (in_DG_unix_mode.ne.O) then C In DG Unix mode; check character value. if (ich.ge.ichar('a') .and. ich.le.ichar('f'» ich=ich-32 if (ich.lt.ichar (' 0') .or. ich.gt.ichar('F') .or. 1 (ich.lt.ichar('A') .and. ich.gt.ichar('9'») then write(*,2) ich stop endif C Convert hex to decimal and return. getn = ich-ichar('O') if (ich.gt.ichar('9'» getn=ich-ichar('A')+lO else C In DG native mode; check character value. if (ich.lt.ichar('@') .or. ich.gt.ichar('O'» write(*,2) ich 2 formate' Illegal "nn" character: ' ,Z2.2) stop endif 014-002111 then C-11 C Convert DG hex to decimal and return. getn = ich-ichar('@') endif return 100 continue getn = -1 return end integer function getnn(iin) integer iin C Decode a DG mode pair. C EOF (-1) Returns an integer in the range a to 255, or integer t1,t2 external getn integer getn C Default is error. getnn=-l C Get first character. t1=getn(iin) if (t1.1t.O) return C Get second. t2=getn(iin) if (t2.lt.0) return C Combine them and return. getnn=t1*16+t2 return end subroutine set DG unix(iout) integer iout C Set DG Unix mode. Note that this will work whether or not DG Unix mode is C currently enabled. integer in DG Unix mode, old attr common /DGTERM/ in=DG_Unix_mode,old_attr C Set the flag and put the terminal into DG Unix mode. in DG unix mode=l write(iout-;-1) 1 format('<036>P@1') return end subroutine reset DG unix(iout) integer iout -C Reset DG Unix mode. C currently enabled. Note that this will work whether or not DG Unix mode is integer in DG Unix mode, old attr common /DGTERM/ in=DG_Unix_mode,old_attr C-12 014-002111 C Clear the flag and take the terminal out of DG Unix mode. in DG unix mode=O wrTte1iout:-1) 1 format('<036>P@0') return end subroutine write window address (l,c,iout) integer l,c,ioutinteger*2 12,c2 C Example of DG mode Write Window Address command. Note that this is not C generally useful with DG Unix Mode. C '1' is line number (0 to 23) and 'c' is column number (0 to 126). C Convert line and column to character values and ship them. 12 = 1*256+32 c2 = c*256+32 write(iout,l) c2,12 1 format('<020>',2Al) return end subroutine write screen address (l,c,iout) integer l,c,ioutC Example of DG mode Write Screen Address implementation. C work with DG unix mode. This command will C Send <036>FP header. write (iout,1) 1 format('<036>FP') C Send column and line numbers. call sendnn(c,iout) call sendnn(l,iout) return end character function ccs(c) character c C Insure that the given character is printable. intrinsic ichar,char integer ich C Strip high bit. ich=ichar(c) if (ich.ge.128) ich=ich-128 C If it's a control character, replace it with'.'. if (ich.lt.32.or.ich.eq.127) ich=ichar(' .') ccs=char(ich) return end subroutine expect (str,iin) character*(*) str integer iin 014-002111 C-13 C Expect a certain fixed response from the terminal intrinsic ichar external ccs integer ic character in,ccs 10 ic-O continue ic=ic+1 C Blank terminates the string. if (str(ic:ic).eq.' ') return C Get next character from host. read (iin, , (A1) ') in if (str(ic:ic).ne.in) then write(*,l) ccs(in),ichar(in),ccs(str(ic:ic»,ichar(str(ic:ic» stop endif 1 formate' Got ',A1,' (',Z2.2,') while expecting ',A1,' (', 1 Z2 • 2, , ) . ' ) go to 10 end subroutine run test (func,iin,iout) logical func integer iin,iout C Example testing program. This will send the cursor to all 0200 screen C addresses and make sure that the cursor actually gets there. external getnn integer getnn integer l,c,rc,rl C Loop over all rows and columns. do 10 1=0,23 do 10 c=0,79 rl=l rc=c C Call requested function. if (func) call write screen address (rl,rc,iout) if (.not.func) call write_wIndow_address(rl,rc,iout) C Send read-cursor-position command. write (iout,1) 1 format ('<036>Fb') C Expect return header and data. call expect ('<036>08 ' ,iin) rc""getnn(iin) rl=getnn(iin) if (rc.ne.c .or. rl.ne.l) then write(*,2) l,c,rl,rc stop endif 10 continue 2 formate' Went to ',i2,',',i2,' and got' ,i2,',',i2,' .') return end subroutine test C-14 014-002111 C Driver for above testing routine. This will call the above test routine and C direct it to use Write Window Address and Write Screen Address. call set_up_terminal(5,6) C Test write-window-address functions. 1 write(*,1) format(' <014>Testing Write Window Address .•. ') call run_test(.false.,5,6) C Test write-screen-address functions. 2 write(*,2) format(' <014>Testing Write Screen Address .•. ') call run test(.true. 1 5 , 6) return end subroutine reset attrs(attrs,iout) integer attrs,iout C Turn off the indicated attributes. (Internal routine.) intrinsic iand character*6 dg off(4) data dg off/' ("<035>")',' (' '<036>E")',' (' '<025>")', 1 '("<017>")'/ integer i,j 10 if (attrs.eq.O) return i=1 do 10 j=1,4 if (iand(i,attrs) .ne.O) write(iout,dg_off(j» i=i*2 continue return end subroutine set_attrs(attrs,iout) C Turn on the indicated attributes. (Internal routine.) integer attrs,iout intrinsic iand character*6 dg on(4) data dg on/'("<034>")','(I'<036>D")'I' ("<024>")', 1 - , ("<016>")'/ integer i,j 10 if (attrs.eq.O) return i=1 do 10 j=1,4 if (iand(i,attrs) .ne.O) write(iout,dg_on(j» i=i*2 continue return end subroutine change attributes (attr,iout) integer attr,iout- C Set the attributes to the given state with as few commands as possible. intrinsic ieor,iand integer in DG Unix mode, old attr common /DGTERM/ in-DG Unix iiiode,old attr integer temp - 014-002111 C-1S C Get differences. temp=ieor (attr, old_attr) C Clear those that need to be cleared. call reset_attrs(iand(temp,old_attr),iout) C Set those that need to be set. call set_attrs(iand(temp,attr),iout) old attr=attr return end subroutine show file(fin,istext,iout) integer fin,iout logical istext C C C C Read binary information from fin and output it in PINK style using 0400 commands to iout. This program runs very slowly since the output is unbuffered. This is done deliberately since this is a pedagogic example. intrinsic char,ichar integer dim, reverse, under, blink data dim,reverse,under,blink/l,2,4,8/ integer attrs,ich,ipos character ch,chlast character*255 chstr C Assume last character was a normal ASCII character. chlast='a' ipos=O 10 continue C Get next character from file. if (istext) then if (ipos.eq.O) read(fin,3,end=100,err=200) chstr 3 format (A255) ipos = ipos+l ich = ichar(chstr(ipos:ipos» if (ich.eq.10.or.ipos.eq.255) ipos=O else read(fin,1,end=100,err=200) ch 1 format (Al) ich = ichar(chl. endif attrs=O if (ich .ge. 128) then C C C-16 If high bit is set, then turn on underscore attribute. attrs=under ich=ich-128 If control character, then turn on dim attribute. if (ich .It. 32) then attrs=attrs+dim ich=ich+64 else if (ich .eq. 127) then attrs=attrs+dim ich=ichar ( , -' ) endif else if (ich .eq. 127) then 014-002111 C C If control character, then turn on dim attribute. attrs=dim ich=ichar ( , -' ) else if (ich .It. 32) then attrs=dim Check for special line-end sequences. if (ich .eq. 10) then if (chlast .eq. ' ') then call change attributes(dim,iout) write (iout, , ( " I ' , ) , ) endif else if (ich .eq. 13) then call change attributes (dim,iout) write(iout,'("<074>"}') ich=10 else if (ich .eq. 12) then call change attributes (dim,iout) write(iout,'("*")') ich=10 else ich=ich+64 endif endif endif C Set the attributes and send out the adjusted character. call change attributes(attrs,iout) ch=char(ich) write (iout,1) ch chlast=ch go to 10 200 2 100 continue write (*,2) formate' Unexpected error while reading file!') continue return end subroutine extract next(inline,i,ilen,fname) character*80 inline integer i,ilen character*32 fname C Internal routine -- extract next file name from input line. integer j 10 fname=' , j=l continue if (inline(i:i).gt.' ') go to 20 i=H1 if (i.gt.ilen) return 20 go to 10 continue fname(j:j)=inline(i:i) j=j+1 i-H1 if (i.gt.ilen.or.j.gt.32) return if (inline(i:i).gt.' ') go to 20 return end subroutine show 014-002111 C-17 C Main routine for example code above. This program will read any number of C input files and show the output in PINK format. integer nfiles,i character*32 fname character*80 inline logical istext C Prompt for file names. write (*,' (" Enter names of files to show: read(*,' (A80)') inline ' ,),) C Count the number of files. do 20 ilen=80,1,-1 if (inline(ilen:ilen) .ne.' ') go to 30 20 continue 30 continue nfiles=O i=1 40 continue call extract next(inline,i,ilen,fname) if (fname(1:1).eq.' ') go to 50 nfiles-nfi1es+1 go to 40 50 1 continue if (nfiles.le.O) then write(*,1) format(' Usage:'/8X,'SHOW [file-name [file-name ••• ]]') stop endif C Loop over files and send them to the screen. call set up terminal (5, 6) i=1 -10 continue call extract next(inline,i,ilen,fname) if (fname(1:1).eq.' ') go to 60 istext = .false. open(unit=20,file=fname,iointent='input',mode-'binary', 2 status='0Id',maxrecl=1,delimiter='include',err=100) 102 continue C 2 C-18 If there is more than one file requested, write out the names. if (nfiles.gt.1) then call change attributes (0, 6) write(6,2) fname format ('File: ',A32,'<012>') endif 014-002111 C Send the file to the screen. call show file (20,istext, 6) go to 10 100 101 3 60 continue istext = .true. open(unit=20,file=fname,status='old',recfm='datasensitive', 1 maxrecl=255,delimiter='include',pad='yes',err=101) go to 102 continue write(*,3) fname format ('Unable to locate file: "',A32,"'<012>') go to 10 continue call change attributes (0, 6) return end program which C Main program. character ans write(*,' (" Run (S)how or (T)est? If)') read (*, , (Al) ') ans if (ans.eq.'s'.or.ans.eq.'S') call show if (ans.eq.'t'.or.ans.eq.'T') call test end 014-<102111 C-19 VT320 Emulation /* * * ** ** "e" vt320 mode.c VT320/VT100 mode demonstration. Initial version 01JUN90. Copyright (c) 1990 by Data General Corporation. Non-exclusive license to * use, distribute, and modify this code is hereby granted without monetary * consideration, provided this copyright message is included in all such derivative works. Standard disclaimers regarding merchantability, suitability for a particular purpose, et cetera, all apply. This code is distributed with no warranty whatsoever. */ * * * iinclude iinclude iinclude tinclude iinclude /* * * * * These routines can be used to condition a communication line for binary I/O when writing a C program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. */ static int UnbufferedMode 0; void set unbuffered () { if (UnbufferedMode) return; UnbufferedMode=l; fflush (stdout) ; if (freopen("@input","j",stdin)==NULL) { fputs("Unable to open your terminal for binary input.\r\n",stderr): exit (1): } setbuf(stdin,NULL); if (freopen("@output","k",stdout)==NULL) fprintf(stderr,"Unable to open your terminal for binary output.\r\n"): exit (2) ; } void set buffered () { if (!UnbufferedMode) return; UnbufferedMode=O; if (freopen("@input","r",stdin)=NULL) { fputs("Unable to open your terminal for normal input.\r\n",stderr): exit(l); - } if (freopen("@output","w",stdout)==NULL) { fputs("Unable to open your terminal for normal output.\r\n",stderr): C-20 014-002111 exit (2); } /* * * This routine is required for AOS because it mistakenly uses LF for end-of-line, rather than CR, and it assumes DG mode cursor controls. */ char * afgets (str, len,fp) char *str; int len; FILE *fp; { int chr,ilen: i f (fp != stdin) return fgets(str,len,fp): set unbuffered(): chr-= fgetc (fp): i f (chr == EOF) return NULL: ilen = 0; for (::chr=fgetc(fp» switch (chr) { case EOF: case '\r': case' \n': i f (len != 0) *str = '\0'; fputs("\r\n",stdout): fflush (stdout): return str; case '\10': case '\177': i f (ilen == 0) break; fputs("\10 \10",stdout); str--: ilen--; break; default: if (ilen+1 >= len) break; fputc(chr,stdout); *str++ = chr; ilen++; } /*NOTREACHED*/ 01~02111 C-21 /* * These routines may be used on any system that uses ASCII to provide support * for a VT320 terminal in a C program. */ /* * Constants for use with routine below. */ #define #define #define #define DIM REVERSE UNDER BLINK 1 2 4 8 static int old_attr=DIM; static void do vt attrs(attrs,strings,fp,pfirst) int attrs,*pfirst; char *strings[]; FILE *fp; { int i,j; for(i=1,j=O;i<16;i«=1,j++) if (i&attrs) { if (!*pfirst) fputc(';' ,fp); *pfirst=O; fputs(strings[j],fp); } /* * Set the attributes to the given state with as few commands as possible. */ void change attributes(attr,fp) int attr; FILE *fp; { int change, first; static char *vt off[]={"1","27","24","25"}; static char *vt=on[]={"22","7","4","5"}; change=attrAold attr; /* get changes from current */ if (change==O) /* if none, exit */ return; first=1; fputs("\33[",fp); if (change&old attr) /* if any need clearing, do them */ do vt attrs(change&old attr,vt off,fp,&first); if (change&attr) - /* if any need setting, do them */ do vt attrs(change&attr,vt on,fp,&first); fputc('m',fp); old_attr=attr; C-22 01~02111 /* * Example of VT320 Cursor Position (CUP) command. * '1' is line number (1 to 24) and 'c' is column number (1 to 80). */ void cursor position(l,c,f) int 1, FILE *f; c; ( fprintf(f,I\33[%d;%dH",l,c); /* * Example of VT320 Horizontal and Vertical position (HVP) command * implementation. */ void horizontal_vertical (l,c,f) int 1, c; FILE *f; { fprintf(f,"\33[%d;%df",l,c}; 1* * Decode a CSI sequence returned from the terminal. */ fdefine ccs(c) ««c)&Ox7F»' '&&«c)&Ox7F)%c (lB %02X) .\r\n", ccs (ich) ,ich); exit(22); Got } /* Read in an ANSI sequence */ tp=tbuf; while «ich=fgetc(fp» !=EOF) if «ich&Ox60)==Ox20) *tp++=ich; else break; 014-002111 C-23 /* Check the terminating character */ if (ich!=termc) { fprintf (stderr, "Error while parsing CSI string from terminal. Unexpected terminator: %c (%02X). \r\n" , ccs(ich),ich): exit(23); } /* Parse decimal arguments in the string */ *tp-O; tp=tbuf: for (ich=O:tp&&ich<*maxp:ich++) *bufp++=atoi(tp): tp=strchr(tp,':'): if (tp) tp++: } if (tp) fputs("Extra arguments returned from terminal ignored.\r\n",stderr): *maxp=ich; /* * Example testing program. This will send the cursor to all VT320 screen * addresses and make sure that the cursor actually gets there. */ void test (func,fin,fout) void (*func) (/* int,int,FILE * */); FILE *fin,*fout; /* DG C doesn't like ANSI prototypes */ { int 1,c,lc[2),nc: for (1=1:1<25:1++) /* for all lines */ for (c=1;c<81;c++) { /* and columns */ (*func) (l,c,fout): /* go to position */ fputs("\33[6n",fout): /* read cursor pos */ nc=sizeof(lc)/sizeof(*lc): ansi decode (fin,'R' ,lc,&nc); /* read in data */ if (nc! =2) { fprintf(stderr,"Expected 2 parms returned, got %d. \r\n", nc) : exit(4); } i f (lc [1) !=c II lc[O] != 1) { fprintf(stderr,"Went to %d,%d got %d,%d\r\n",l,c,lc[O),lc[l]); exit(3); } /* * Driver for above testing routine. This will call the above test routine and * direct it to use Cursor Position and Horz/Vert Position. */ int run test (argc,argv) int-argc: char **argv; { set_unbuffered(); C-24 014-002111 /* Test with CUP command */ fputs ("\33 [2J\33 [HTesting Cursor Position (CUP) ..• \r\n",stdout); test(cursor"'position,stdin,stdout); /* Test with HVP command */ fputs("\33[2J\33[HTesting Horizontal and Veritical Position (HVP) ••• \r\n", stdout) ; test (horizontal_vertical, stdin, stdout); fputs("\r\nDone.",stdout); return 0; /* * Read binary information from 'fp' and output it in PINK style using VT320 * commands to 'f'. */ idefine linend(chr) { change_attributes(DIM,f); fputc(chr,f); ch='\n'; } void show file (fp, f) FILE-*fp,*f; { int ch,chlast=O,attrs; while «ch=fgetc(fp» !=EOF) attrs=O; if (ch > 127) { attrs = UNDER; ch -= 128; i f (ch < 32) { attrs 1= DIM; ch+='@'; /* if upper bit set */ /* then underscore on */ /* if control character */ /* then character is dim */ } i f (ch == 127) { attrs 1= DIM; ch ' -' ; } else { if (ch == 127) { attrs = DIM; ch = ' -' ; /* if control character */ /* then character is dim */ } i f (ch < 32) attrs = DIM; switch (ch) { /* check for special end-of-line */ case '\n': if (chlast==' ') linend('I'); break; case' \r': linend('<') ; break; case ' \14' : linend (' *, ) ; break; default: ch+=64; } change attributes (attrs,f); fputc (ch, f) ; if (ch=='\n') fputc('\r',f); 01~02111 /* set new attributes */ /* send out the character */ /* if LF, do CR also */ C-2S chlast=ch; } fclose (fp) ; 1* * Main routine for example code above. This program will read any number of * input files and show the output in PINK format. *1 int show (argc, argv) int argc; char **argv; { FILE *fp; i f (argc<2 ) { fputs("Usage:\r\n\tSHOW [file-name [file-name ..• ]]\r\n",stderr); exit (0); } set unbuffered(); whiTe (*++argv) 1* for each file in list *1 if (access(*argv,O» fprintf(stderr,"%s does not exist!\r\n",*argv); else if (access(*argv,4» fprintf(stderr,"Insufficient access rights on %s!\r\n",*argv); else if «fp=fopen (*argv, "j") ) ==NULL) fprintf (stderr, "Cannot open %s! \r\n", *argv) ; else if (argc>2) { 1* if 2 or more files, give names *1 change attributes(O,stdout); printf("\r\nFile: %s\r\n",*argv); } show file(fp,stdout); } - change attributes(DIM,stdout); return-Oj 1* Main program *1 int main (argc,argv) int argc; char **argv; { char str[256]; printf("\rRun (S)howor (T)est? "); if (afgets(str,256,stdin» switch(tolower(*str» case's': return show(argc,argv); case't': return run_test(argc,argv); } return 1: C-26 014-002111 VT320 Emulation "Fortran 77" C vt320 mode.f77 VT320/VT100 mode demonstration. C C C Initial version 01JON90. C C C C C C C Copyright (c) 1990 by Data General Corporation. Non-exclusive license to use, distribute, and modify this code is hereby granted without monetary consideration, provided this copyright message is included in all such derivative works. Standard disclaimers regarding merchantability, suitability for a particular purpose, et cetera, all apply. This code is distributed with no warranty whatsoever. C C C C This routine can be used to condition a communication line for binary I/O when writing an F77 program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. subroutine set up terminal (iin,iout) integer iin,iout integer old attr common /VTTERM/ old_attr open(unit=iin,file='@input',screenedit='no',maxrecl=l, 1 delimiter='include',force='yes',iointent='input', 2 mode='binary',err=lOO) open(unit=iout,file='@output',carriagecontrol='none', 1 screenedit='no',force='yes',iointent='output',mode='binary', 2 err=100) old attr=l return 100 1 continue write(*,l) formate' Unable to open your terminal as a binary device.') stop end subroutine wstr(str,iout) character*(*) str integer iout write (iout,' (A)') str return end C These routines may be used on any system that uses ASCII to provide support C for a VT320 or compatible terminal in an F77 program. subroutine write decimal(num,iout) integer num,ioutC This routine will send out a generic decimal number without space padding. intrinsic char,ichar character*20 str integer a,i,nu 014-002111 C-27 C If number is negative, send out a leading minus sign. nu = num if (num.lt.O) then nu = -nu write (iout,' (' '-")') endif C Extract digits from number. i = 20 10 continue a = nu nu = nullO str(i:i) = char(a-10*nu+ichar('0'» i=i-1 if (i.gt.O .and. nu.ne.O) go to 10 C Write out digit string. call wstr(str(i+1:20),iout) return end subroutine cursor-position(1,c,iout) integer l,c,iout C Example of VT320 Cursor Position (CUP) command. C '1' is line number (1 to 24) and 'c' is column number (1 to 80). write (iout, , (' , <033> [' , ) , ) call write decimal (l,iout) write (iout-;-' (' , ;")') call write decimal(c,iout) write (iout-;-' ("H")') return end subroutine horizontal vertical(l,c,iout) integer l,c,iout C Example of VT320 Horizontal and Vertical position (HVP) command C implementation. write(iout,' ("<033>[")') call write decimal(l,iout) write (iout-;-' (" ;")') call write decimal(c,iout) write (iout-;-' (" f")') return end integer function atoi(buf,start,end) character*(*) buf integer start, end C-28 014--002111 C Convert character string to integer. intrinsic ichar character chr integer i,val 10 i = start val = 0 continue chr = buf(i:i) if (chr.lt.'0'.or.chr.gt.'9') go to 20 val = val*lO val = val+ichar(chr)-ichar('O') i 20 ... i+l if (i.le.end) go to 10 continue atoi=val return end character function ccs(c) character c C Insure that character given is printable and return. intrinsic ichar,char integer ich ich=ichar(c) if (ich.ge.128) ich=ich-128 if (ich.lt.32) ich=ichar('.') ccs=char(ich) return end subroutine ansi decode(termc,buf,maxb,iin) character termcinteger maxb,iin integer buf(maxb) C Decode a CSI sequence returned from the terminal. intrinsic ichar external ccs,atoi character ccs integer atoi character in character*128 tbuf integer tp,ich,i,j C Get a character. read(iin,l,end=lOO,err=lOO) in 1 format (Al) 0102111 C-29 C Check for CSI header. if (in.ne.'<233>') then if (in.ne.'<033>') then write (*,2) ccs(in),ichar(in) 2 format ('Error while waiting for CSI from terminal. 1 A1,' (',Z2.2,').<01S>') stop endif read(iin,l,end=lOO,err=lOO) in if (in.ne.' [') then write (*,3) ccs(in),ichar(in) 3 format ('Error while waiting for CSI from terminal. 1 SH,Al,' (lB ',Z2.2,').<012><01S>') stop endif endif Got' Got' C Read in the ANSI string. tp = 0 10 continue read(iin,l,end=200,err=200) in ich = ichar (in) if (ich.lt.32 .or. ich.gt.63) go to 20 tp = tp+1 tbuf(tp:tp) in go to 10 20 continue C Check terminator character. if (in.ne.termc) then write(*,4) ccs(in),ich 4 format ('Error while parsing CSI from terminal. Unexpected' 1 'terminator: ',A1,' (',Z2.2,').<012>') stop endif C-30 014-<015>') maxb = j return continue write(*,6) format ('End of file on input while waiting for CSI.<012><015>') stop continue write(*,7) format ('End of file on input while reading CSI string.<012><015>') stop end subroutine run test (func,iin,iout) logical func integer iin,iout C Example testing program. This will send the cursor to all VT320 screen C addresses and make sure that the cursor actually gets there. integer l,c,rc,rl integer nc,lc(2) C Loop over all rows and columns. do 10 1=1,24 do 10 c=1,80 C Send cursor to position rl=l rc=c if (func) call cursor-POsition(rl,rc,iout) if (.not.func) call horizontal_vertical (rl,rc,iout) 014-002111 C-31 C Read cursor position back write (iout,1) 1 format ('<033>[6n') nc=2 call ansi decode('R',lc,nc,iin) if (nc.ne:2) then write(*,2) nc 2 format ('Expected 2 parms returned, got ',i2,'.<012><015>') stop endif if (lc(2) .ne.c .or. lc(l).ne.l) then write (*,3) l,c,lc(1),lc(2) 3 format ('Went to ',i2,',',i2,' and got ',i2,',',i2,'.<012><015>') stop endif 10 continue return end subroutine clear screen(iout) integer iout write (iout,' (' '<033>[2J<033>[H")') return end subroutine test C Driver for above testing routine. This will call the above test routine and C direct it to use Cursor Position and Horizontal/Vertical Position. 1 2 call set up terminal (5,6) call clear screen(6) write(*,l)format ('Testing Cursor Position (CUP) .•. <015>') call run test(.false.,5,6) call clear screen(6) write (*,2)format ('Testing Horizontal/Veritical Position (HVP) ••. <015>') call run test(.true.,5,6) return end subroutine send attrs(attrs,aary,first,iout) integer attrs,iout,aary(4) logical first C Send the indicated attributes. (Internal routine.) intrinsic iand integer i,j 10 i=l do 10 j=1,4 if (iand(i,attrs) .ne.O) then if (.not.first) write(iout,'(";")') call write decimal(aary(j),iout) first-. false. endif i=i*2 continue return end subroutine change attributes (attr,iout) integer attr,iout- C-32 014-002111 C Set the attributes to the given state with as few commands as possible. intrinsic ieor,iand integer old attr common /VTTERM/ old attr integer vt off(4),vt on(4),temp logical first data vt off/l,27,24,25/ data vt=on/22,7,4,5/ C Get attributes that differ. If none, then return. temp=ieor(attr,old attr) if (temp.eq.O) return first=.true. write(iout,' ("<033>[")') call send attrs(iand(temp,old attr),vt off,first,iout) call send-attrs(iand(temp,attr),vt on,first,iout) write(iout,' ("m")') old attr=attr return end subroutine show file(fin,istext,iout) integer fin,iout logical istext C C C C Read binary information from fin and output it in PINK style using VT320 commands to iout. This program runs very slowly since the output is unbuffered. This is done deliberately since this is a pedagogic example. intrinsic char,ichar integer dim, reverse, under, blink data dim,reverse,under,blink/l,2,4,8/ integer attrs,ich,ipos character ch,chlast character*255 chstr 10 3 1 chlast='a' ipos = 0 continue if (istext) then if (ipos.eq.O) read (fin, 3,end=100, err=200) chstr format (A255) ipos = ipos+l ich = ichar(chstr(ipos:ipos» if (ich.eq.l0.or.ipos.eq.255) ipos=O else read (fin, 1, end=100, err=200) ch format (AI) ich = ichar (ch) endif attrs=O if (ich .ge. 128) then attrs=under ich=ich-128 if (ich .It. 32) then attrs=attrs+dim ich=ich+64 else if (ich .eq. 127) then attrs=attrs+dim ich=ichar ( , -' ) endif else if (ich .eq. 127) then 014-002111 C-33 200 2 100 attrs=dim ich=ichar (' -' ) else if (ich .It. 32) then attrs=dim if (ich .eq. 10) then if (chlast .eq. ' ') then call change attributes(dim,iout) write (iout,' (" I " ) ' } endif else if (ich .eq. 13) then call change attributes (dim,iout) write(iout,'("<074>")'} ich=10 else if (ich .eq. 12) then call change attributes (dim,iout) write(iout,'("*")') ich=10 else ich=ich+64 endif endif endif call change attributes(attrs,iout} ch=char (ich) write(iout,l) ch if (ich.eq.10) write (iout,l) char(13} chlast=ch go to 10 continue .write (*,2) format ('Unexpected error while reading file!<012><015>') continue return end subroutine extract next(in1ine,i,ilen,fname} character*80 inline integer i,ilen character*32 fname C Internal routine -- extract next file name from input line. integer j 10 fname=' , j=l continue if (inline(i:i).gt.") go to 20 i=i+1 20 if (i.gt.ilen) return go to 10 continue fname(j:j)=in1ine(i:i} j=j+1 i=i+1 if (i.gt.ilen.or.j.gt.32) return if (inline(i:i) .gt.' '} go to 20 return end subroutine show C-34 014-002111 C Main routine for example code above. This program will read any number of C input files and show the output in PINK format. integer nfiles,i character*32 fname character*80 inline logical istext C Prompt for file names. write(*,' (" <015>Enter names of files to show: read(*,' (A80)') inline write(*,' (" <015>")') ")') C Count the number of files. do 20 ilen=80,1,-1 if (inline(ilen:ilen).ne.' ') go to 30 20 continue 30 continue nfiles=O i=1 40 continue call extract next(inline,i,ilen,fname) if (fname(I:1).eq.' ') go to 50 nfiles=nfiles+l go to 40 50 continue if (nfiles.le.O) then write(*,I) formate' Usage:'/8X,'SHOW [file-name [file-name ..• J]') stop endif 1 C Loop over files and send them to the screen. call set up terminal (5,6) i=1 10 102 C 2 -- continue call extract next(inline,i,ilen,fname) if (fname(I:1).eq.' ') go to 60 istext = .false. open(unit=20,file=fname,iointent='input',mode='binary' , status='old',maxrecl=1,delimiter='include',err=100) 2 continue If there is more than one file requested, write out the names. if (nfiles.qt.l) then call change attributes (0, 6) write(6,2) fname format ('<015>File: ',A32,'<012><015>') endif 014-002111 C-35 C Send the file to the screen. call show file (20, istext, 6) go to 10 100 101 3 60 continue istext = .true. open(unit=20,file=fname,status='old',recfm='datasensitive', 1 maxrecl=255,delimiter='include' ,pad='yes' ,err=101} go to 102 continue write(*,3) fname format ('<015>Unable to locate file: "',A32,"'<012><10S>') go to 10 continue call change attributes (O,6) return end program which character ans write(*,' (" <015>Run (S}how or (T)est? read (*, , (A1) ') ans if (ans.eq.'s' .0r.ans.eq.'S') call show if (ans.eq.'t'.or.ans.eq.'T') call test end C-36 ")') 014-002111 VT52 Emulation "e" /* * vt52 mode.c - * * * ** -This program permits the user to draw lines using the VTS2 graphics mode (line drawing) characters. This program also demonstrates a set of routines for use with the DEC VTS2. * Usage: The following keys are valid (case is not significant): Description Key Set movement to non-destructive, non-drawing. M D Set movement to draw~ng. Set movement to eras~ng. E S Save screen data in a file. Q Quit The arrow keys move the cursor about the screen, and optionally draw or erase lines. ** Initial version 01JUN90 by James Carlson. * * * * * * ** ** Copyright (c) 1990 by Data General Corporation. Non-exclusive license to use, distribute, and modify this code is hereby granted without monetary consideration, provided this copyright message is included in all such derivative works. Standard disclaimers regarding merchantability, suitability for a particular purpose, et cetera, all apply. This code is * distributed with no warranty whatsoever. */ * * * * iinclude 1* * * * * This routine can be used to condition a communication line for binary I/O when writing a C program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. */ void set up terminal() { - if (freopen("@input","j",stdin)=NULL) fprintf (stderr, "Unable to open your terminal for binary input. \n") i exit (1); } setbuf(stdin,NULL}; if (freopen("@output","k",stdout)==NULL) fprintf(stderr,"Unable to open your terminal for binary output. \n"); exit (2); } 014-002111 -C-37 /* * This routine is required for AOS because it mistakenly uses LF for * end-of-line, rather than CR, and it assumes DG mode cursor controls. */ char * afgets(str,len,fp) char *str; int len; FILE *fp; { int chr,ilen; if (fp != stdin) return fgets(str,len,fp); chr = fgetc (fp) ; i f (chr == EOF) return NULL; ilen = 0; for (;;chr=fgetc(fp» switch (chr) { case EOF: case '\r': case' \n' : if (len != 0) *str = ' \0' ; fputs("\r\n",stdout); fflush (stdout) ; return str; case '\10': case '\177': if (ilen == 0) break; fputs("\10 \10",stdout); str--; ilen--: break: default: if (ilen+1 >= len) break: fputc(chr,stdout): *str++ = chr; ilen++; } /*NOTREACHED*/ C-38 014-002111 /* * The first section of this program provides support routines for moving * the cursor around the screen. */ int crow,ccol: /* Go to a specific row and column */ void VT52_set-position(row,col,fp) int row, col; FILE *fp; { if (row==O && col==O) fputs("\33H",fp); else { int absflag=O; /* special case -- home */ /* Set flag if column move is expensive */ if (col!=ccol && col!=O) absflag=l: /* Check for inexpensive row movement */ if (row==crow+l && absflag==O) fputc('\12' ,fp); else if (row==crow-1 && col==ccol) fputs("\33A",fp); else if (row!=crow) absflag=2; /* If movement not expensive and column changes, do column move */ if (absflag!=2 && co11=ccol) i f (col==O) fputc('\15',fp): else if (col==cco1+1) fputs("\33C",fp); else if (col==ccol-1) fputc('\10' ,fp): else absflag=2; /* If movement is expensive, then do absolute row/col positioning */ if (absflag==2) fprintf (fp, "\33Y%c%c",row+' ',col+' '): crow ccol row; col: /* Clear the screen and home the cursor */ void VT52 clear (fp) FILE-*fp; { VT52_set-position(O,O,fp); fputs("\33J",fp): /* Put into graphics (line drawing) mode */ void VT52 graphics mode(fp) FILE-*fp: { fputs("\33F",fp): 014-002111 C-39 /* Exit graphics (line drawing) mode */ void VT52 normal mode(fp) FILE-*fp; { fputs("\33G",fp); /* * The second part of this program implements the line-drawing algorithm for * the special graphics characters. */ 'define NROWS 'define NCOLS 24 80 /* The screen array contains the encoded line connection information */ char screen [NROWS] [NCOLS]; /* These constants define bits used for connection information */ idefine LEFTCON 1 tdefine RIGHTCON 2 idefine UPCON 4 8 'define DOWNCON /* This string defines the characters used to show connectivity above */ char lines [] = " qqqxjmvxklwxutn"; /* This flag indicates whether drawing, moving or erasing */ int Drawing; /* Put connected line drawing character on screen at current position */ void show connection(fp) FILE-*fp; { fputc(lines[screen[crow] [ccol]],fp); if (ccol != NCOLS-l) ccol++; /* put connected line char */ /* VT52 has no autowrap */ /* * Clear the screen, then loop through all of the screen data and produce * a minimized sequence to produce that image on the screen. */ void redraw screen(fp) FILE *fp; { int row, col; VT52 clear (fp) ; VT52-graphics mode(fp); for (row=O;row to continue.\r\n"); afgets(temp,128,stdin); redraw screen(stdout); /* put user's screen back up */ VT52_set-position(rowsave,colsave,stdout); /* Set the connection type for the current cell and update the VT52 screen */ void set connection (conn) char conn; { int colsave; colsave=ccol; switch (Drawing) case 1: /* Drawing */ if (screen [crow] [ccol] & conn) return; /* already set */ screen [crow] [ccol] 1= conn; show connection(stdout); break; case -1: /* Erasing */ if «screen[crow] [ccol] & conn)==O) return; /* already clear */ screen [crow] [ccol] &= -conn; show connection(stdout); break; } VT52_set_position(crow,colsave,stdout); 014-002111 1* put cursor back */ C-41 /* Handle keyboard sequences (see dispatch below) */ void esc dispatch () { switch (fgetc(stdin}) { case 'A': set connection(UPCON); /* leave if (crow==O) break; VT52_set-position(crow-1,ccol,stdout); set connection(DOWNCON): /* enter break: case ' B' : set connection(DOWNCON): /* leave if (crow==NROWS-1) break: VT52_set-position(crow+l,ccol,stdout): set connection(UPCON): /* enter break: case 'C': set connection(RIGHTCON): /* leave if (ccol==NCOLS-1) break; VT52_set-position(crow,ccol+1,stdout}; set connection(LEFTCON); /* enter break: case'D': set connection(LEFTCON): /* leave if (ccol==O) break: VT52_set-position(crow,ccol-1,stdout); set connection(RIGHTCON): /* enter break: through top */ through bot */ through bot */ through top */ through right */ through left */ through left */ through right */ /* Dispatch user's input */ void dispatch () { for (::) switch (fgetc(stdin)} { case ' \33' : esc dispatch(): /* ESC sequence */ break: case '\15': /* CR */ VT52_set-position(crow,0,stdout): break: case 'm': case 'M': Drawing = 0: /* Movement mode */ break: case 'd': case '0': Drawing = 1; /* Drawing mode */ break; case 'e': case 'E': Drawing = -li /* Erasing mode */ break; case's': case'S': save file () ; /* Save screen in file */ break; case 'q': case 'Q': returni /* Quit */ } /*NOTREACHED*/ C-42 014-002111 /* Initialize internal data for program */ void initialize () { int i; char *sp; sp=screen; for (i=NROWS*NCOLS;i>O;i--) *sp++ "" 0; Drawing=l; VT52 clear(stdout); VT52=graphics_mode(stdout); /* initialize connection array */ /* set drawing mode */ int rnain(argc,argv) int argc; char **argv; { set up terrninal(); initialize () i dispatch () ; VT52 clear(stdout); VT52-norrnal mode (stdout) ; return 0; - 014-002111 /* /* /* /* set to unbuffered binary setup internal data handle user's commands reset VT52 modes before exit */ */ */ */ C-43 VT52 Emulation "Fortran 77" C vt52 mode.f77 -This program permits the user to draw lines using the VT52 graphics C mode (line drawing) characters. This program also demonstrates a C set of routines for use with the DEC VT52. C C C Usage: C The following keys are valid (case is not significant): C Key Description Set movement to non-destructive, non-drawing. C M C Set movement to drawing. D Set movement to eras1ng. C E C Save screen data in a file. S C Quit Q C The arrow keys move the cursor about the screen, and optionally draw or C erase lines. C C C C C C C Initial version 01JUN90. C C C C This routine can be used to condition a communication line for binary I/O when writing an F77 program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. Copyright (c) 1990 by Data General Corporation. Non-exclusive license to use, distribute, and modify this code is hereby granted without monetary consideration, provided this copyright message is included in all such derivative works. Standard disclaimers regarding merchantability, C suitability for a particular purpose, et cetera, all apply. This code is C distributed with no warranty whatsoever. subroutine set_up_terminal integer stdin,stdout common /prog/ stdin,stdout 100 C-44 open(unit=stdin,file='@input',screenedit='no',maxrecl=l, 1 delimiter='include',force='yes',iointent='input', 2 mode='binary' ,err=lOO) open(unit=stdout,file='@output',carriagecontrol='none', 1 screenedit='no',force='yes',iointent='output',mode='binary', 2 err=lOO) return continue write(*,' (" Unable to open your terminal as a binary device.")') stop end 014-002111 C C The first section of this program provides support routines for moving C the cursor around the screen. C character function getc(iin) integer iin character ch 1 100 read(iin,1,err=100,end=100) ch format (A1) getc=ch return continue getc=' , return end subroutine VT52_set-position(row,col,iout) integer row,col,iout C Send cursor to an absolute row/column location. integer stdin,stdout,output,crow,ccol common /prog/ stdin,stdout,output,crow,ccol integer absflag integer*2 cblank data cblank/2H / integer*2 cl,c2 C if (row.eq.O .and. col.eq.O) then Special case -- home write (iout,' (' '<033>H")') else absflag=O C Set flag if column move is expensive. if (col.ne.ccol .and. col.ne.O) absflag=l C Check for inexpensive row movement. if (row.eq.crow+l .and. absflag.eq.O) then write (iout,' (' '<012>")'} else if (row.eq.crow-1 .and. col.eq.ccol) then write (iout,' (' , <033>A' '}') else if (row.ne.crow) absflag=2 endif C If movement not expensive and column changes, do column move. if (absflag.ne.2 .and. col.ne.ccol) then if (col.eq.O) then write (iout,' (' '<015>") ') else if (col.eq.ccol+l) then write(iout,' ("<033>C")') else if (col.eq.ccol-l) then write(iout,' ("<010>")') else absflag=2 endif endif 014-002111 C-4S C 1 If movement is expensive, then do absolute row/col positioning. if (absflag.eq.2) then cl = cblank + row*256 c2 = cblank + col*256 write(iout,l) cl,c2 format ('<033>Y' ,2Al) endif endif crow = row ccol = col return end subroutine VT52 clear(iout) integer iout - C Clear the screen and home the cursor. call VT52_set-position(O,O,iout) write(iout,' ("<033>J")') return end subroutine VT52 graphics mode(iout) integer iout C Put into graphics (line drawing) mode. write (iout,' (' '<033>F' ') ') return end subroutine VT52 normal mode(iout) integer iout C Exit graphics (line drawing) mode. write(iout,' ("<033>G")') return end C C The second part of this program implements the line-drawing algorithm for C the special graphics characters. C subroutine show connection (iout) integer iout C Put connected line drawing character on screen at current position. integer NROWS,NCOLS parameter (NROWS=24) parameter (NCOLS=80) integer stdin, stdout, output, crow, ccol,drawing, screen (NCOLS,NROWS) common /prog/ stdin,stdout,output,crow,ccol,drawing,screen C This string defines the characters used to show connectivity. character*16 lines data lines/' qqqxjmvxklwxutn'/ integer i C Put connected line character. i = screen(ccol+l,crow+l)+l write(iout,' (Al)') lines (i:i) C-46 01~2111 C VT52 has no autowrap. if (ccol .ne. NCOLS-I) ccol ccol+l return end subroutine redraw screen(iout) integer iout C Clear the screen, then loop through all of the screen data and produce C a minimized sequence to produce that image on the screen. integerNROWS,NCOLS parameter (NROWS=24) parameter (NCOLS=80) integer stdin,stdout,output,crow,ccol,drawing,screen(NCOLS,NROWS) common /prog/ stdin,stdout,output,crow,ccol,drawing,screen integer row,col,r,c C Reset the screen. call VT52 clear(iout) call VT52:graphics_mode(iout) C Loop over rows and columns on screen. do 10 r=I,NROWS do 10 c=I,NCOLS row=r-l col=c-l if (screen (c,r) .ne.O) then C If non-blank in this position, then update data here call VT52_set-position(row,col,iout) call show connection(iout) endif 10 continue return end subroutine save file C Get a file name from the user and save the screen data there. integer NROWS,NCOLS parameter (NROWS=24) parameter (NCOLS=80) integer stdin, stdout, output, crow, ccol,drawing, screen (NCOLS,NROWS} common /prog/ stdin,stdout,output,crow,ccol,drawing,screen character*64 temp integer rowsave,colsave C Save current cursor position. rowsave=crow colsave=ccol C Reset the screen and put back to normal text mode. call VT52 clear(stdout) call VT52:normal_mode(stdout) 014-002111 C-47 C Prompt user for name of file for output data. write(*,' ("File name for data: ")') read(ll,l) temp 1 format (A64) write (*,' (' '<015>")') C Open file and save data. if (temp(l:l).eq.' ') then write (*,' (' , No data saved. else 1 2 ' ') ') open (unit=output,file=temp,carriagecontrol='none' , screenedit='no',force='yes',iointent='output',mode='binary', err=100) C Send controls to file. call redraw_screen(output) C Put a mode exit at end of file. call VT52 normal mode(output) call VT52=set-position(NROWS-2,0,output) close (iout) 2 200 write(*,2) temp format('Saved screen data in: endif continue ',A64,'<015><012>') write(*,' ("Press CR to continue.<015><012>")') read (11,1) temp C Put user's screen back up. call set up terminal call redraw-screen(stdout) call VT52_set-position(rowsave,colsave,stdout) return 100 3 continue write(*,3) temp format ('Unable to open file for output: go to 200 end ' ,A64,'<015><012>') subroutine set connection(conn) integer conn C Set the connection type for the current cell and update the VTS2 screen intrinsic iand,ior,ixor integer NROWS,NCOLS parameter (NROWS=24) parameter (NCOLS=SO) integer stdin, stdout,output,crow, ccol,drawing, screen (NCOLS,NROWS) common /prog/ stdin,stdout,output,crow,ccol,drawing,screen integer col save C C ~ colsave=ccol if (drawing.eq.1) then Is the flag already set? if (iand(screen(ccol+1,crow+1),conn).ne.0) return screen (ccol+l,crow+l) = ior(screen(ccol+l,crow+1),conn) call show connection(stdout) else if (drawing.eq.-1) then Is the flag already clear? 014-002111 if (iand(screen(ccol+l,crow+l),conn).eq.O) return screen (ccol+l,crow+l) = ixor(screen(ccol+l,crow+l),conn) call show connection(stdout) endif C Put cursor back in place. call VT52_set-position(crow,colsave,stdout) return end subroutine esc_dispatch C Handle keyboard sequences (see dispatch below). external getc character getc C These constants define bits used for connection information. integer LEFTCON,RIGHTCON,UPCON,DOWNCON parameter (LEFTCON=l) parameter (RIGHTCON=2) parameter (UPCON=4) parameter (DOWNCON-S) integer NROWS,NCOLS parameter (NROWS=24) parameter (NCOLS-SO) integer stdin,stdout,output,crow,ccol common /prog/ stdin,stdout,output,crow,ccol character chr chr=getc(stdin) if (chr.eq.'A') then C Leave through top, then enter through bottom. call set connection(UPCON) if (crow~ne.O) then call VT52_set-position(crow-l,ccol,stdout) call set connection(DOWNCON) ~dif else if (chr.eq.'B') then C Leave through bottom, then enter through top. call set connection(DOWNCON) if (croW:ne.NROWS-l) then call VT52_set-F0sition(crow+l,ccol,stdout) call set connection(UPCON) endif else if (chr.eq.'C') then C Leave through right, then enter through left. call set connection(RIGHTCON) if (ccol~ne.NCOLS-l) then call VT52_set-Fosition(crow,ccol+l,stdout) call set connection(LEFTCON) endif else if (chr.eq.'D') then C Leave through left, then enter through right. call set connection(LEFTCON) if (ccol~ne.O) then call VT52_set-Fosition(crow,ccol-l,stdout) call set connection(RIGHTCON) endif - 014-002111 ~49 endif return end subroutine dispatch C Dispatch user's input. external getc character getc integer stdin,stdout,output,crow,ccol,drawing common /prog/ stdin,stdout,output,crow,ccol,drawing character chr 10 continue chr=getc (stdin) if (chr.eq.'<033>') then call esc dispatch else if (chr.eq.'<015>') then call VT52_set-position (crow, 0, stdout) else if (chr.eq.'m' .or. chr.eq.'M') then Drawing = 0 else if (chr.eq.'d' .or. chr.eq.'D') then Drawing = 1 else if (chr.eq.'e' .or. chr.eq.'E') then Drawing = -1 else if (chr.eq.'s' .or. chr.eq.'S') then call save file else if (chr.eq.'q' .or. chr.eq.'Q') then return endif go to 10 end subroutine initialize C Initialize internal data for program. integer NROWS,NCOLS parameter (NROWS=24) parameter (NCOLS=80) integer stdin,stdout,output,crow,ccol,drawing, screen (NCOLS,NROWS) common /prog/ stdin,stdout,output,crow,ccol,drawing,screen integer i,j C Initialize connection array. C The screen array contains the encoded line connection information. do 10 i=l,NROWS do 10 j=l,NCOLS screen(j,i) = 0 10 continue C Set drawing mode. drawing=l C Clear screen and enter line drawing mode call VT52 clear(stdout) call VT52=graphics_mode(stdout) return end C-50 014-002111 program drawing C This is the main program. integer stdin,stdout,output common /prog/ stdin,stdout,output stdin = 5 stdout = 6 output = 7 C Set to unbuffered binary communication. call set_up_terminal C Setup internal data call initialize C Handle user's commands call dispatch C Reset VT52 modes before exit call VT52 clear (stdout) call VT52=normal_mode(stdout) end 014-002111 C-S1 Tektronix 4010 Emulation "e" /* * tek mode.c - This program permits the user to draw lines using the Tek4010 emulation mode. This program also demonstrates a set of routines for use with the Tektronix 4010. * * * ** * Usage: Use the following keys to enter points Key Description L Begin a line at current location B Begin a box at current location T Begin entering text here D Delete last object S Save objects in file Q Quit SPACE Finish operation (line, box) here NewLine Finish operation (line, box, text) here ** Initial version 01JUN90 by James Carlson. ** * * * * * Copyright (c) 1990 by Data General Corporation. Non-exclusive license to use, distribute, and modify this code is hereby granted without monetary consideration, provided this copyright message is included in all such derivative works. Standard disclaimers regarding merchantability, suitability for a particular purpose, et cetera, all apply. This code is distributed with no warranty whatsoever. * * * * * * * * * */ tinclude /* * * * * This routine can be used to condition a communication line for binary I/O when writing a C program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. */ void set up terminal() { - - if (freopen("@input","j",stdin)==NULL) fprintf(stderr,"Unable to open your terminal for binary input.\n"); exit (1); } setbuf(stdin,NULL); if (freopen("@output","k",stdout)==NULL) fprintf (stderr, "Unable to open your terminal for binary output. \n") ; exit(2); } C-52 014-002111 /* * This routine is required for AOS because it mistakenly uses LF for * end-of-line, rather than CR, and it assumes DG mode cursor controls. */ char * afgets (str, len, fp) char *str; int len; FILE *fp; { int chr,ilen; if (fp != stdin) return fgets(str,len,fp); chr ... fgetc (fp) ; i f (chr == EOF) return NULL; ilen = 0; for (;;chr=fgetc(fp» switch (chr) { case EOF: case '\r': case' \n': if (len != 0) *str= '\0'; fputs("\r\n",stdout); fflush (stdout) ; return str; case '\10': case '\177': i f (Hen == 0) break: fputs("\10 \10",stdout): str--; ilen--; break: default: if (ilen+1 >= len) break; fputc(chr,stdout): *str++ = chr; ilen++; } /*NOTREACHED*/ typedef struct { FILE *fp; int xbeam,ybeam; enum { Initial, Alpha, Drawing } state; } Device; /* Convert two characters from terminal into 10 bit number */ int tenbit(high,low) char high, low; { return ( «high & OxlF) « 5) + (low & OxlF) ); /* Get a point on the screen from the user. */ char getpoint(xp,yp,outd) 014-002111 C-S3 int *XP,*YPi Device *outdi { char buffer[4]; int c,ii /* Start cross-hair */ fputs("\037\033\032",stdout)i /* Wait for key press */ c:fgetc(stdin)&Ox7F; for (i:O;i<4;i++) buffer[i]:fgetc(stdin)&Ox7F; (*xp) : tenbit(buffer[O],buffer[l]); (*yp) : tenbit(buffer[2],buffer[3]); outd->state : Alpha; return c; void optimizesend(x,y,outd) int x,y; Device *outd; { int hox,hoy,hoxb,hoyb; int lox,loy,loxb,loyb; /* Extract 5 bit portions of the data */ hox x»S; hoy = y»S; lox: x&OxlF; loy: y&OxlF; if (outd->state : : Initial) hoxb hox+l; hoyb hoy+l; loxb lox+l; loyb loy+li } else { hoxb hoyb loxb loyb outd->xbeam»5; outd->ybeam»5; outd->xbeam&OxlFi outd->ybeam&OxlFi } /* Do optimized Tek coordinate transmission */ if (hoy!: hoyb) putc(hoy+Ox20,outd->fp)i if «loy!: loyb) I I (hox !: hoxb» putc(10y+Ox60,outd->fp); if (hox !: hoxb) putc(hox+Ox20,outd->fp)i putc(10x+Ox40,outd->fp)i out d->xbeam:x i outd->ybeam:Yi void darkto(x,y,outd) int X,Yi Device *outdi { if (x! :outd->xbeam I I y! :outd->ybeam I I outd->state!:Drawing) putc('\035',outd->fp)i optimizesend(x,y,outd); outd->state : Drawing; } void gotoalpha (outd) C-S4 014-002111 Device *outd; { if (outd->state != Alpha) { putc('\037',outd->fp); outd->state = Alpha; } void startstring(x,y,outd) int x,y; Device *outd; { darkto(x,y,outd); gotoalpha(outd); void drawvector(xfrom,yfrom,xto,yto,outd) int xfrom,yfrom,xto,yto; Device *outd: { darkto(xfrom,yfrom,outd); optimizesend(xto,yto,outd): void clearscreen(outd) Device *outd: { fputs("\033\014",outd->fp): outd->state = Initial; typedef struct struct enum { item item *next; None, Line, Box, Text } type; int xloc,yloc; union { char *textp; struct { int x2,y2; } x; } x; } Item; Item *list = NULL; tdefine New (x) «x *)malloc(sizeof(x») void draw object (it,outd) Item-*it; Device *outd; { switch (it->type) { case Line: drawvector(it->xloc,it->yloc,it->x.x.x2,it->x.x.y2,outd); break; case Box: drawvector (it->xloc, it->yloc, it->xloc, it->x.x.y2,outd) ; drawvector(it->xloc,it->x.x.y2,it->x.x.x2,it->x.x.y2,outd); drawvector(it->x.x.x2,it->x.x.y2,it->x.x.x2,it->yloc,outd); drawvector(it->x.x.x2,it->yloc,it->xloc,it->yloc,outd); 014-002111 C-55 break; case Text: startstring(it->xloc,it->yloc,outd}; fputs(it->x.textp,outd->fp); break; void redraw screen(outd) Device-*outd; { Item *temp; clearscreen(outd); for (temp=list;temp;temp=temp->next) draw_object (temp,outd); /* Get a file name from the user and save the screen data there */ void save file (outd) Device *outd; { char temp[128]; Device file: clearscreen(outd); printf("File name for data: "); afgets(temp,128,stdin); if (*temp==' \0' ) printf("No data saved."); else if «file. fp=fopen (temp, "w") ) ==NULL) printf("Unable to open %s for output.",temp); else redraw screen(&file): /* send controls to file */ gotoalpha(&file); /* put a mode exit at end */ close(file.fp); printf("Saved screen data in %s.",temp); } printf (" Press to continue. \r\n"); afgets(temp,128,stdin); redraw_screen(outd); /* put user's screen back up */ void commit object(it) Item *it; { Item *temp; temp = New (Item); *temp = *it; temp->next = list; list = temp; void del last (outd) Device *outd; { Item *temp; if (list==NULL) return; C-56 014-002111 temp = list; list = temp->next; if (temp->type==Text) free(temp->x.textp); free (temp) ; redraw_screen(outd); void gettext (it, outd) Item *it; Device *outd; { char temp[128]; startstring(it->xloc,it->yloc,outd); if (afgets(temp,128,stdin) !=NULL && temp[O] !='\O') it->x.textp = strsave(temp); commit object(it); } - static void ptcopy(it) Item *it; { it->xloc it->yloc it->x.x.x2; it->x.x.y2; /* Dispatch user's input */ void dispatch (outd) Device *outd; { Item temp; temp. type = None; for (;;) switch (getpoint(&temp.x.x.x2,&temp.x.x.y2,outd» case '\15': /* CR */ case ' ': if (temp. type != None) { draw object(&temp,outd); commIt object (&temp); } - ptcopy (&temp) ; break; case '1': case 'L': ptcopy (&temp) ; temp. type = Line; break; case 'b': case 'B': ptcopy (&temp) ; temp.type = Box; break; case ' t ' : case 'T': ptcopy (&temp) ; temp. type = Text; gettext(&temp,outd); temp. type = None; break; case 'd': case '0': dellast (outd) ; break; case's': case'S': 014~02111 /* Can't duplicate item */ C-57 save file(outd); break; case 'q': case 'Q': return; /* Save screen in file */ /* Quit */ } /*NOTREACHED*/ void initialize (outd) Device *outd; { outd->fp = stdout; clearscreen(outd); } /* Main program */ int main (argc,argv) int argc; char **argv; { Device terminal; set up terminal(); initialize(&terminal); dispatch(&terminal); clearscreen(&terminal); return 0; C-58 /* set to unbuffered binary /* setup internal data /* handle user's commands */ */ */ 014-002111 Tektronix 4010 Emulation "Fortran 77" C tek mode.f77 C - This program permits the user to draw lines using the Tek4010 emulation C mode. This program also demonstrates a set of routines for use with C the Tektronix 4010. C C C C C C C C C C C C C C C C C C C C C Copyright (c) 1990 by Data General Corporation. Non-exclusive license to use, distribute, and modify this code is hereby granted without monetary consideration, provided this copyright message is included in all such derivative works. Standard disclaimers regarding merchantability, suitability for a particular purpose, et cetera, all apply. This code is distributed with no warranty whatsoever. C C C C This routine can be used to condition a communication line for binary I/O when writing an F77 program under DG AOS. It switches both input and output to binary mode, which disables character translation, and unbuffers the input. Usage: Use the following keys to enter points Key Description L Begin a line at current location B Begin a box at current location T Begin entering text here D Delete last object S Save objects in file Q Quit SPACE Finish operation (line, box) here NewLine Finish operation (line, box, text) here Initial version 01JUN90. subroutine set_up_terminal integer stdin,stdout common /units/ stdin,stdout 100 open(unit=stdin,file='@input',screenedit='no',maxrecl=l, 1 delimiter='include',force='yes' ,iointent='input', 2 mode='binary' ,err=100) open(unit=stdout,file='@output',carriagecontrol='none' , 1 screenedit='no',force='yes',iointent='output',mode='binary', 2 err=100) return continue write(*,, (" Unable to open your terminal as a binary device.")') stop end 014~02111 C-59 C C The first section of this program provides support routines for moving C the cursor around the screen. C character function getc(iin) integer iin character ch 1 100 read(iin,1,err=100,end=100) ch format (A1) getc=ch return continue getc=' , return end C Device structure: C 1 - output file unit number C 2 X beam position C 3 - Y beam position C 4 State (0 - initial, 1 - alpha, 2 - drawing) integer function tenbit(high,low) character high, low C Convert two characters from terminal into 10 bit number. intrinsic ichar,iand tenbit = iand(ichar(high),31) *32 + iand(ichar(low),31) return end character function getpoint(x,y,outd) integer x,y,outd(4) C Get a point on the screen from the user. external getc,tenbit character getc integer tenbit integer stdin,stdout common /units/ stdin,stdout character buffer(4) integer i C Start cross-hair. write (*, , (' , <037><033><032>' , ) , ) C Wait for key press. getpoint = getc(stdin) do 10 i=1,4 buffer (i) = getc(stdin) 10 continue C-60 014-002111 C Decode received point data. x = tenbit(buffer(1),buffer(2» y = tenbit(buffer(3),buffer(4» outd(4) = 1 return end subroutine optimizesend(x,y,outd) integer x,y,outd(4) C Send optimized point data in Tek 4010 format. intrinsic iand,char integer hox,hoy,hoxb,hoyb integer lox,loy,loxb,loyb C Extract 5 bit portions of the data. hox x/32 hoy y/32 lox iand(x,31) loy iand(y,31) if (outd(4) .eq. 0) then hoxb hox+1 hoyb hoy+l loxb lox+l loyb loy+1 else hoxb outd(2)/32 hoyb outd(3)/32 loxb iand(outd(2),31) loyb iand(outd(3),31) endif C Do optimized Tek coordinate transmission. if (hoy.ne.hoyb) write(outd(l),l) char (hoy+32) if (loy.ne.loyb .or. hox.ne.hoxb) write(outd(l),l) char (loy+96) if (hox.ne.hoxb) write(outd(l),l) char (hox+32) write(outd(l),l) char (lox+64) 1 format (AI) outd (2) x outd (3) = Y return end subroutine darkto(x,y,outd) integer x,y,outd(4) C Send the beam to a new position without drawing. if (x.ne.outd(2) .or. y.ne.outd(3) write (outd(l) " (' '<035>")') call optimizesend(x,y,outd) outd(4) = 2 endif return end .or. outd(4) .ne.2) then subroutine gotoalpha(outd) integer outd(4) 014-002111 C-S1 C Send device into alpha mode. if (outd(4) .ne.l) then write (outd(l) " (' '<037>")') outd(4) ... 1 endif return end subroutine startstring(x,y,outd) integer x,y,outd(4) C Begin printing string at given location. call darkto(x,y,outd) call gotoalpha(outd) return end subroutine drawvector(xfrom,yfrom,xto,yto,outd) integer xfrom,yfrom,xto,yto,outd(4) C Draw a vector between the given points. call darkto(xfrom,yfrom,outd) call optimizesend(xto,yto,outd) return end subroutine clearscreen(outd) integer outd(4) C Initialize the screen of the given device. write (outd(1),' (' '<033><014>")') outd(4) .. 0 return end integer function lengthof(str,maxlen) character*(*) str integer maxlen integer len C Find actual string length. do 10 len=maxlen,1,-1 if (str (len: len) .ne.' ') go to 20 10 continue len .. 0 20 continue lengthof len return end subroutine show text (text,maxlen,unit) character*(*) text integer maxlen,unit C Print a text string without printing trailing blanks. external lengthof integer lengthof integer len len = lengthof(text,maxlen) if (len.gt.O) write(unit,' (A)') text (1:1en) return end C-62 014-002111 C Item structure: C 1 - type of item (0 - none, 1 - line, 2 - box, 3 - text) C 2 X location C 3 Y location C 4 X2 or text index C 5 Y2 subroutine draw object (it,outd) integer it(5),outd(4) C Draw the object indicated by 'it' on device 'outd'. integer NTEXT parameter (NTEXT=200) character*64 texts (NTEXT) common /texts/ texts if (it (1) .eq.l) then call drawvector(it(2),it(3),it(4),it(5),outd) else if (it(l) .eq.2) then call drawvector(it(2),it(3),it(2),it(5),outd) call drawvector(it(2),it(5},it(4),it(5),outd} call drawvector(it(4),it(5},it(4),it(3),outd) call drawvector(it(4),it(3),it(2),it(3),outd) else if (it(l) .eq.3) then call startstring(it(2),it(3),outd) call show text(texts(it(4»,64,outd(1» endif return end subroutine redraw screen(outd) integer outd (4) C Clear the screen and redraw all objects in the list. integer NITEMS parameter (NITEMS=lOOOO) integer items (5,NITEMS) common /items/ items integer nexti,nextt common /pointers/ nexti,nextt integer i 10 call clearscreen(outd) if (nexti.eq.l) return do 10 i = l,nexti-l call draw object(items(l,i),outd) continue return end subroutine commit object(it) integer it (5) - 014-002111 C-63 C Add given object to database. integer NITEMS parameter (NITEMS=10000) integer items (S,NITEMS) common /items/ items integer nexti,nextt common /pointers/ nexti,nextt integer i 10 if (nexti.gt.NITEMS) return do 10 i=l,S items (i,nexti) = it (i) continue nexti = nexti+1 return end subroutine dellast(outd) integer outd (4) C Delete last item added to database. integer nexti,nextt common /pointers/ nexti,nextt if (nexti.le.1) return nexti" = nexti-1 if (items (l,nexti) .eq.3) nextt call redraw screen(outd) return end nextt-1 subroutine gettext(it,outd) integer it(5),outd(4) C Get a text string from the user. external lengthof integer lengthof integer NTEXT parameter (NTEXT=200) character*64 texts (NTEXT) common /texts/ texts integer nexti,nextt common /pointers/ nexti,nextt character*64 temp 100 call startstring(it(2),it(3),outd) read(ll,' (A64)',end=100,err=100) temp if (lengthof(temp,64).eq.0) go to 100 it (4) = nextt " texts (nextt) = temp nextt = nextt+1 call commit object(it) continue return end subroutine ptcopy(it) integer it(S) C-64 014-002111 C Copy new X/Y to last X/Y it(2) = it(4) it (3) = it (5) return end subroutine save file{outd) integer outd(4)C Get a file name from the user and save the screen data in it. external lengthof integer lengthof integer stdin,stdout,output common /units/ stdin,stdout,output character*64 temp integer file(4),len C Clear the screen and get the file name from the user. call clearscreen{outd) write {*, , (' 'File name for data: ")') read(11,1) temp 1 format (A64) write (*,' (' '<015>")') C Open file and save data. len = lengthof(temp,64) if (len.eq.O) then write (*,' (' 'No data saved. ") ') else open(unit=output,file=temp,carriagecontrol='none' , screenedit='no',force='yes',iointent='output',mode='binary', 1 2 err=100) file(1) = output C Send controls to file. call redraw screen(file) C Put a mode exit at end. call gotoalpha(file) close (output) write(*,2) temp(l:len) 2 format ('Saved screen data in: ',A,'<015><012>') endif 200 continue write(*,' ("Press CR to continue.<015><012>")') read (11,1) temp C Put user's screen back up. call redraw_screen(outd) return 100 3 continue write(*,3) temp (1:len) format ('Unable to open file for output: go to 200 end ',A,'<015><012>') subroutine dispatch(outd) integer outd(4) 0102111 C-65 C Dispatch user's input. external get point character getpoint integer stdin,stdout,output common /units/ stdin,stdout,output character chr integer temp (5) temp (1) = 0 continue chr = getpoint(temp(4),temp(S),outd) if (chr.eq.'' .or. chr.eq.' ') then if (temp (1) .ne.O) then call draw_object (temp,outd) call commit object(temp) endif call ptcopy(temp) else if (chr.eq'.'l' .or. chr.eq.'L') then call ptcopy(temp) temp (1) = 1 else if (chr.eq.'b' .or. chr.eq.'B') then call ptcopy(temp) temp (1) = 2 else if (chr.eq.'t' .or. chr.eq.'T') then call ptcopy(temp) temp (1) = 3 call gettext(temp,outd) C Can't duplicate item. temp(l) = 0 else if (chr.eq.'d' .or. chr.eq.'D') then call dellast(outd) else if (chr.eq.'s' .or. chr.eq.'S') then call save file(outd) else if (chr.eq.'q' .or. chr.eq.'Q') then return endif go to 10 end 10 subroutine initialize(outd) integer outd(4) C Initialize internal data for program. integer stdin,stdout,output common /units/ stdin,stdout,output integer nexti,nextt common /pointers/ nexti,nextt C Set next next pointers to beginning of array. nexti = 1 nextt = 1 C Initialize the terminal screen. outd(l) = stdout call clearscreen(outd) return end C-66 014-002111 program drawing C This is the main program. integer stdin,stdout,output common /units/ stdin,stdout,output data stdin,stdout,output/5,6,7/ integer terminal (4) C Set to unbuffered binary terminal I/O. call set_up_terminal C Setup internal data. call initialize(terminal) C Handle user's commands. call dispatch(terminal) C Clear Tek 4010 screen before exiting. call clearscreen(terminal) end End of Appendix 014-002111 C-67 Index Numbers 4010. See Tektronix 4010 Mode A ACKM. See Application/ANSI Cursor Keys Mode Alignment, VT320/100 mode, 3-63 Answerback, VT320/100 mode, 3-75 Application/ANSI Cursor Keys Mode, VT320/100 mode,3-54 ARM. See Auto Repeat Mode Arc, DG native-mode, 2-75 Assign User-Preferred Supplemental Set, VT320/100 mode, 3-32, 3-33 Assistance, telephone, iii AUPSS. See Assign User-Preferred Supplemental Set Auto Print Mode, VT320/100 mode, 3-84 Auto Repeat Mode, VT320/100 mode, 3-57 Auto Wrap Mode, VT320/100 mode, 3-56 AWM. See Auto Wrap Mode B Backspace, VT320/100 mode, 3-6 Bar, DG native-mode, 2-75 Bell DG native-mode, 2-71 VT320/100 mode, 3-6 Bit Dump Screen, VT320/100 mode, 3-65 Blink Disable, DG native-mode, 2-33 Blink Enable, DG native-mode, 2-32 Blink Off, DG native-mode,2-32 Blink On, DG native-mode. 2-32 014-002111 c Carriage Return DG native-mode, 2-38 VT320/100 mode, 3-6 Change Atttibutes, DG native-mode, 2-31 , Character Loopback, DG native-mode, 2-90 Clear Tab Stops, VT320/100 mode, 3-43 Clearing Downloaded Character Sets, VT320/100 mode,3-36 COM See Cursor Origin Mode CPR. See Cursor Position Report CUB. See Cursor Backward CUD. See Cursor Down CUP. See Cursor Forward CUP. See Cursor Position CUU. See Cursor Up Cursor Attnbutes, DG native-mode, 2-80 Cursor Backward, VT320/100 mode, 3-40 Cursor Down DG native-mode, 2-38 VT320/100 mode, 3-39 Cursor Forward, VT320/100 mode, 3-40 Cursor Left, DG native-mode, 2-37 Cursor Location, DG native-mode, 2-79 Cursor Off, DG native-mode, 2-78 Cursor On, DG native-mode, 2-78 Cursor Origin Mode, VT320/100 mode, 3-55 Cursor Position, VT320/100 mode, 3-40 Cursor Position Report, VT320/100 mode, 3-72 Cursor Reset, DG native-mode, 2-80 Cursor Right, DG native-mode, 2-37 Cursor Track, DG native-mode, 2-79 Cursor Up DG native-mode, 2-37 VT320/100 mode, 3-39 D DA. See Primary Device Attribute Request Data General. See DG Native-Mode Index-1 Data Trap Mode, DO native-mode, 2-88 DCH. See Delete Character DEC. See VT320/100 Mode or VT52 Mode DECID. See Terminal Identification DECSED. See Selective Erase in Display DECSEL. See Selective Erase in Line Deallocate Character Sets, DG native-mode, 2-28 Define Character, DG native-mode, 2-29 Delete Character DG native-mode, 2-57 VT320/100 mode, 3-44 Delete Line, DG native-mode, 2-56 Delete Line Between Margins, DG native-mode, 2-56 Designating Character Sets, VT320/100 mode, 3-31 Device Status Report, VT320/100 mode, 3-70 DG native-mode Arc, 2-75 Bar, 2-75 Bell,2-71 Blink Disable, 2-33 Blink Enable, 2-32 Blink Off, 2-32 Blink On, 2-32 Carriage Return, 2-38 Change Attributes, 2-31 Character Loopback, 2-90 Cursor Attributes, 2-80 Cursor Down, 2-38 Cursor Left, 2-37 Cursor Location, 2-79 Cursor Off, 2-78 Cursor On, 2-78 Cursor Reset, 2-80 Cursor Right, 2-37 Cursor Track, 2-79 Cursor Up, 2-37 Data Trap Mode, 2-88 Deallocate Character Sets, 2-28 Defme Character, 2-29 Delete Character, 2-57 Delete Line, 2-56 Delete Line Between Margins, 2-56 Dim Off,2-32 Dim On, 2-32 Display Character Generator Contents, 2-91 Double High/Double Wide, 2-35 Erase Screen, 2-55 Erase to End of Line, 2-55 Erase Unprotected, 2-57 Index-2 Erase Window, 2-55 Field Attributes, 2-35 Fill Screen With Character, 2-91 Fill Screen With Grid, 2-91 Form Bit Dump, 2-82 Horizontal Scroll Disable, 2-54 Horizontal Scroll Enable, 2-54 Host Programmable Function Keys, 2-58 Hot Key Switch, 2-67 Insert Character, 2-57 Insert Line, 2-55 Insert Line Between Margins, 2-56 Line, 2-74 Named SavelResore Cursor, 2-48 New Line, 2-38 Page Attributes, 2-36 Perform UART Loopback Test, 2-91 Polygon Fill, 2-76 Pop, 2-45 Print Form, 2-81 Print Pass Through Off, 2-84 Print Pass Through On, 2-83 Print Screen, 2-82 Print Window, 2-81 Printer Pass Back to Host, 2-85 Protect Disable, 2-34 Protect Enable, 2-34 Protect Off, 2-34 Protect On, 2-34 Push,2-44 Read Bit Contents, 2-90 Read Characters Remaining, 2-30 Read Cursor Contents, 2-89 Read Cursor Location, 2-78 Read Horizontal Scroll Offset, 2-62 Read New Model ID, 2-64, 2-65 Read Screen Address, 2-63 Read Window Address, 2-62 Read Window Contents, 2-63 Report Screen Size, 2-61 Reserve Character, 2-29 Reset, 2-71 Restore Normal Margins, 2-40 Reverse Video Off, 2-33 Reverse Video On, 2-33 Roll Disable, 2-54 Roll Enable, 2-53 SavelRestore Screen Contents, 2-49 Screen Home, 2-49 Scroll Down, 2-52 Scroll Left, 2-52 Scroll Right, 2-53 Scroll Up, 2-52 Select 7!8 Bit Operation, 2-72 Select Character Set, 2-27 014-002111 Select Compressed Spacing, 2-47 Select Nonnal Spacing, 2-48 Select Printer National Character Set, 2-87 Set 25th Line Mode, 2-44 Set Alternate Margins, 2-39 Set Clock Time, 2-71 Set Cursor Type, 2-70 Set Device Options, 2-69 Set First Row to Display, 2-68 Set Foreground Color, 2-77 Set Keyboard Language, 2-72 Set Margins, 2-39 SetMode1UD,2-70 Set Pattern, 2-76 Set Row Length, 2-50 Set Scroll Rate, 2-51 Set Split Screen Mode, 2-68 Set Windows, 2-43 Shift In, 2-28 Shift Out, 2-28 Show Columns, 2-51 Simulprint Off, 2-86 Simulprint On, 2-85 Switch Emulation Mode, 2-67 UNIX Mode, 2-73 Underscore Off, 2-33 Underscore On, 2-33 VT-Style Autoprint Off, 2-86 VT-Style Autoprint On, 2-86 Window Bit Dump, 2-83 Window Home, 2-42 Write Window Address, 2-41 DG native-mode by hex order 01, Print Form, 2-81 02, Reverse Video Off, 2-33 03, Blink Enable, 2-32 036 106 077 072, Print Screen, 2-82 04, Blink Disable, 2-33 OS, Read Window Address, 2-62 07, Bell, 2-71 08, Window Home, 2-42 OA, New Line, 2-38 OB, Erase to End of Line, 2-55 OC, Erase Window, 2-55 ~O, Carriage Return, 2-38 DE, Blink On, 2-32 OF, Blink Off, 2-32 10, , " Write Window Address, 2-41 11, Print Window, 2-81 12, Roll Enable, 2-53 13, Roll Disable, 2-54 14, Underscore On, 2-33 IS, Underscore Off, 2-33 16, Reverse Video On, 2-33 014-002111 17, Cursor Up, 2-37 18, Cursor Right, 2-37 19, Cursor Left, 2-37 lA, Cursor Down, 2-38 lC, Dim On, 2-32 10, Dim Off, 2-32 IE 37 3F 7C, Read Cursor Location, 2-78 IE 41 color, Set Foreground Color, 2-77 IE 44, Reverse Video On, 2-33 IE 45, Reverse Video Off, 2-33 IE 46 37 , , " Select Printer National Character Set, 2-87 IE 46 38, Display Character Generator Contents, 2-91 IE 46 39, Fill Screen With Grid, 2-91 IE 46 3B , , " Data Trap Mode, 2-88 IE 46 3C, Perform UART Loopback Test, 2-91 IE 46 3E, , "Fill Screen With Character, 2-91 IE 46 3F 30, Simulprint Off, 2-86 IE 46 3F 31, Simulprint On, 2-85 IE 46 3F 32, Print Pass Through Off, 2-84 IE 46 3F 33, Print Pass Through On, 2-83 IE 46 3F 35, Window Bit Dump, 2-83 IE 46 3F 36, Form Bit Dump, 2-82 IE 46 3F 37, VT-Style Autoprint Off, 2-86 IE 46 3F 38, VT-Style Autoprint On, 2-86 IE 46 41, Reset, 2-71 IE 46 42 , , " Set Windows, 2-43 IE 46 43, • " Scroll Left, 2-52 IE 46 44 .. " Scroll Right, 2-53 IE 46 45, Erase Screen, 2-55 IE 46 46, Erase Unprotected, 2-57 IE 46 47, Screen Home, 2-49 IE 46 48, Insert Line, 2-55 IE 4648 ... Select Compressed Spacing, 2-47 Select Normal Spacing, 2-48 IE 46 49, Delete Line, 2-56 IE 46 4C, Protect On, 2-34 IE 46 40, Protect Off, 2-34 IE 46 4E. , ., Change Attributes, 2-31 IE 46 4F, Read Horizontal Scroll Offset, 2-62 IE 46 51 , .., Set Cursor Type, 2-70 IE 46 52 , , ., Define Character, 2-29 IE 46 53 , , ., Select Character Set, 2-27 IE 46 54, . "Set Scroll Rate, 2-51 IE 46 55, .., Select 7/8 Bit Operation, 2-72 IE 46 56, Protect Enable, 2-34 IE 4657, Protect Disable, 2-34 IE 46 58 , .., Set Margins, 2-39 IE 46 59 .. " Set Alternate Margins, 2-39 IE 46 5A ..., Restore Normal Margins, 2-40 IE 46 5B, Insert Line Between Margins, 2-56 IE 46 5C, Delete Line Between Margins, 2-56 IE 46 50, Horizontal Scroll Disable, 2-54 Index-3 IE 46 5E, Horizontal Scroll Enable, 2-54 IE 46 SF ..., Show Columns, 2-51 IE 46 60, Print Pass Through On, 2-83 IE 46 61, Print Pass Through Off, 2-84 IE 46 62, Read Screen Address, 2-63 IE 46 64, Read Characters Remaining, 2-30 IE 46 65 ... , Reserve Character, 2-29 IE 46 66 ..., Set Keyboard Language, 2-72 IE 46 68, Push, 2-44 IE 46 69, Pop, 2-45 IE 46 6B ..., Host Programmable Function Keys, 2-58 IE 46 6D 30, Read Cursor Contents, 2-89 IE 46 6D 34 ..., Character Loopback, 2-90 IE 46 6D 35, Hot Key Switch, 2-67 IE 46 6D 36, Read Bit Contents, 2-90 IE 46 71 ..., Deallocate Character Sets, 2-28 IE 46 72 ... , Set Clock Time, 2-71 IE 46 73 ..., Save/Restore Screen Contents, 249 IE 4674, Report Screen Size, 2-61 IE 46 76 ... , Read Window Contents, 2-63 IE 4677, Read New Model ID, 2-64, 2-65 IE 46 78 ... , Printer Pass Back to Host, 2-85 IE 46 7A ..., Set 25th Line Mode, 2-44 IE 46 7B ... , Set Model ID, 2-70 IE 46 7D ... , Named Save/Restore Cursor, 2-48 IE 46 7E ... , Switch Emulation Mode, 2-67 IE 4730 ... , Arc, 2-75 IE 47 31 ... , Bar, 2-75 IE 47 38 ... , Line, 2-74 IE 47 3A ... , Polygon Fill, 2-76 IE 47 3E 7C, Cursor Location, 2-79 IE 47 40, Cursor Attributes, 2-80 IE 47 41, Cursor Reset, 2-80 IE 47 42, Cursor On, 2-78 IE 47 43, Cursor Off, 2-78 IE 47 48 ... , Cursor Track, 2-79 IE 47 70 31 ... , Set Pattern, 2-76 IE 48, Scroll Up, 2-52 IE 49, Scroll Down, 2-52 IE 4A, Insert Character, 2-57 IE 4B, Delete Character, 2-57 IE 4C ..., Line, 2-74 IE 4E, Shift Out, 2-28 IE 4F, Shift In, 2-28 IE 50 40 ..., UNIX Mode, 2-73 IE 5240 ..., Set Row Length, 2-50 IE 524130 ..., Set Split Screen Mode, 2-68 IE 524131 ... , Set First Row to Display, 2-68 IE 52 42 ... , Set Device Options, 2-69 IE 52 43, Field Attributes, 2-35 IE 5244, Page Attributes, 2-36 IE 52 45, Double High/Double Wide, 2-35 Index-4 IE 52 78 ... , Response to Printer Pass Back to Host, 2-85 IE 6F 2C ..., Response to Cursor Attributes, 2-80 IE 6F 38 ... , Response to Read Screen Address, 2-63 IE 6F 39 ... , Response to Read Characters Remaining, 2-30 IE 6F 3A ..., Response to Read Horizontal Scroll Offset, 2-62 IE 6F 3B 30 ..., Response to Read Cursor Con. tents, 2-89 IE 6F 3B 31 ..., Response to Read Bit Contents, 2-90 IE 6F 3C ... , Response to Report Screen Size, 2-61 IE 6F 77 ..., Response to Read New Model ID, 2-65 IE 6F 7C 20 ..., Response to Read Cursor Location, 2-78 IF, Response to Read Window Address, 2-62 DG native-mode by octal order 001, Print Fonn, 2-81 002, Reverse Video Off, 2-33 003, Blink Enable, 2-32 004, Blink Disable, 2-33 005, Read Window Address, 2-62 007, Bell, 2-71 010, Window Home, 2-42 012, New Line, 2-38 013, Erase to End of Line, 2-55 014, Erase Window, 2-55 015, Carriage Return, 2-38 016, Blink On, 2-32 017, Blink Off, 2-32 020 ..., Write Window Address, 2-41 021, Print Window, 2-81 022, Roll Enable, 2-53 023, Roll Disable, 2-54 024, Underscore On, 2-33 025, Underscore Off, 2-33 026, Reverse Video On, 2-33 027, Cursor Up, 2-37 030, Cursor Right, 2-37 031, Cursor Left, 2-37 032, Cursor Down, 2-38 034, Dim On, 2-32 035, Dim Off,2-32 036 101 color, Set FQreground Color, 2-77 036104, Reverse Video On, 2-33 036105, Reverse Video Off,2-33 036 106 067 ... , Select Printer National Character Set, 2-87 036 106 070, Display Character Generator Contents, 2-91 036 106071, Fill Screen With Grid, 2-91 036106 073 ... , Data Trap Mode, 2-88 014-002111 036 106 074, Perform UART Loopback Test, 2-91 036 106 076 000' Fill Screen With Character, 2-91 036 106 077 060. Simulprint Off. 2-86 036 106 (rn 061. Simulprint On. 2-85 036 106 077 062, Print Pass Through Off, 2-84 036 106 077 063. Print Pass Through On, 2-83 036 106 077 065. Window Bit Dump, 2-83 036 106 077 066, Form Bit Dump, 2-82 036 106 077 067, VT-Style Autoprint Off, 2-86 036106 077 070. VT-Style Autoprint On, 2-86 036106077072, Print Screen, 2-82 036106 101, Reset, 2-71 036 106 102 000, Set Windows, 2-43 036 106 10300 ., Scroll Left, 2-52 036 106 104 ... , Scroll Right, 2-53 036 106 105. Erase Screen, 2-55 036106106. Erase Unprotected. 2-57 036106 107. Screen Home, 2-49 036 106 110, Insert Line. 2-55 036 106 111, Delete Line, 2-56 036 106 112 00., Select Nonna! Spacing, 2-48 036 106 113 .0., Select Compressed Spacing, 2-47 036 106 114, Protect On, 2-34 036 106 115, Protect Off, 2-34 036106 116 ..., Change Attributes, 2-31 036 106 117. Read Horizontal Scroll Offset. 2-62 036 106 121 000, Set Cursor Type, 2-70 036 106 122 0. 0, Define Character, 2-29 036 106 123 . 0., Select Character Set. 2-27 036 106 124000, Set Scroll Rate, 2-51 036 106 1250. 0, Select 7/8 Bit Operation, 2-72 036 106 126, Protect Enable, 2-34 036 106 127, Protect Disable, 2-34 036 106 130 •.. , Set Margins, 2-39 036 106 131 .0 0, Set Alternate Margins, 2-39 036 106 132 .. 0, Restore Normal Margins, 2-40 036106 133, Insert Line Between Margins, 2-56 036 106 134, Delete Line Between Margins, 2-56 036 106 135, Horizontal Scroll Disable, 2-54 036 106 136, Horizontal Scroll Enable, 2-54 036106 137.0., Show Columns, 2-51 036 106 140, Print Pass Through On, 2-83 036106 141, Print Pass Through Off, 2-84 036 106 142, Read Screen Address, 2-63 036 106 144, Read Characters Remaining, 2-30 036106 145 ..., Reserve Character, 2-29 036 106 146 .• 0, Set Keyboard Language, 2-72 036 106 150, Push, 2-44 036 106 151, Pop, 2-45 036 106 153 .. 0, Host Programmable Function Keys, 2-58 036 106 155 060, Read Cursor Contents, 2-89 036 106 155 064 00., Character Loopback, 2-90 036 106 155 065, Hot Key Switch, 2-67 01~02111 036 106 155 066, Read Bit Contents, 2-90 036 106 161 . 0., Deallocate Character Sets, 2-28 036 106 162 ... , Set Clock Time, 2-71 03610616300., Save/Restore Screen Contents, 2-49 036 106 164, Report Screen Size, 2-61 036 106 166 . 0., Read Window Contents, 2-63 036 106 167, Read New Model!D, 2-64, 2-65 036 106 170 ... , Printer Pass Back to Host, 2-85 036 106 172 0. 0, Set 25th Line Mode, 2-44 036106 173 0.. , Set Model!D, 2-70 036 106 175 ... , Named Save/Restore Cursor, 2-48 036106 176 .. 0, Switch Emulation Mode, 2-67 036107 060 ... , Arc, 2-75 036 107 061 ... , Bar, 2-75 036 107 064 . 0., Polygon Fill, 2-76 0361070700 .• , Line, 2-74 036 107 076 174, Cursor Location, 2-79 036107077 174, Read Cursor Location, 2-78 036107100, Cursor Attributes, 2-80 036 107 101, Cursor Reset, 2-80 036 107 102, Cursor On, 2-78 036 107 103, Cursor Off, 2-78 036 107 110 0. 0, Cursor Track, 2-79 036107160 061 ..., Set Pattern, 2-76 036110, Scroll Up, 2-52 036111, Scroll Down, 2-52 036 112, Insert Character, 2-57 036 113, Delete Character, 2-57 036 114 ..., Line, 2-74 036 116, Shift Out, 2-28 036 117, Shift In, 2-28 036120100 00.' UNIX Mode, 2-73 036 122 100 . 0., Set Row Length, 2-50 036 122 101 060 0. 0, Set Split Screen Mode, 2-68 036 122 101 061 ... , Set First Row to Display, 2-68 036 122 102 ... , Set Device Options, 2-69 036122103, Field Attributes, 2-35 036122104, Page Attributes, 2-36 036122105, Double High/Double Wide, 2-35 036 122 170 0.., Response to Printer Pass Back to Host, 2-85 036 157 054 0. 0, Response to Cursor Attributes, 2-80 036 157 070 ... , Response to Read Screen Address, 2-63 _ 036157071 0. 0, Response to Read Characters Remaining, 2-30 036 157 072 ..., Response to Read Horizontal Scroll Offset, 2-62 036 157 073 060 . 00, Response to Read Cursor Contents, 2-89 036 157 073 061 ... , Response to Read Bit Contents, 2-90 Index-5 036 157 074 ..., Response to Report Screen Size, 2-61 036 157 167 ... , Response to Read New Model 10, 2-65 036 157 174 040 ..., Response to Read Cursor Location, 2-78 037, Response to Read Window Address, 2-62 Dim Off, DO native-mode, 2-32 Dim On, DG native-mode, 2-32 Display Character Generator Contents DG native-mode, 2-91 VT320/100 mode, 3-63 H Hard Terminal Reset, VT320/l00 mode, 3-63 Help from Data General, iii Horizontal and Vertical Position, VT320/100 mode, 3-41 Horizontal Scroll Disable, DG native-mode, 2-54 Horizontal Scroll Enable, DG native-mode, 2-54 Horizontal Tab, VT320/100 mode, 3-6 Host Programmable Function Keys, DG native-mode, 2-58 Downloading Soft Characters, VT320/100 mode, 3-35 Hot Key Switch DG native-mode, 2-67 VT320/100 mode, 3-65 DSR. See Device Status Report HTS. See Set Horizontal Tab Double High/Double Wide, DO native-mode, 2-35 HVP. See Horizontal and Vertical Position E ECH. See Erase Character ED. See Erase in Display EL. See Erase in Line Erase Character, VT320/100 mode, 3-45, 3-47 Erase in Display, VT320/l00 mode, 3-46 Erase in Line, VT320/100 mode, 3-46 Erase Screen, DO native-mode, 2-55 ICH. See Insert Character IL. See Insert Line IND. See Index Index, VT320/100 mode, 3-41 Insert Character DG native-mode, 2-57 VT320/100 mode, 3-44 Erase Unprotected, DG native-mode, 2-57 Insert Line DG native-mode, 2-55 VT320/l00 mode, 3-45, 3-47 Erase Window, DG native-mode, 2-55 Insert Line Between Margins, DG native-mode, 2-56 Erase to End of Line, DG native-mode, 2-55 Escape Sequences, list of Tektronix 4010 Mode, 4-10 VT52 Mode, 3-89 K EXRM. See Private Reset Mode KAM. See Keyboard Action EXSM. See Private Set Mode KBUM. See Typewriter/Data Processing Keys Mode Keyboard Action, VT320/100 mode, 3-50 F Field Attributes, DG native-mode, 2-35 Keyboard Language Report, VT320/100 mode, 3-73 L Fill Screen With Character, DO native-mode, 2-91 Line, DG native-mode, 2-74 Fill Screen With Grid, DG native-mode, 2-91 Line Attributes, VT320/I00 mode, 3-37 Force Display, VT320/100 mode, 3-66 Form Bit Dump, DG native-mode, 2-82 Line FeedlNew Line, VT320/100 mode, 3-51 Linefeed, VT320/100 mode, 3-6 Form feed, VT320/l00 mode, 3-6 LNM. See Line FeedlNew Line Index-6 014-002111 M MNCSM. See Multi/National Character Set Mode MultilNational Character Set Mode, VT320/100 mode, 3-58 N Named Save/Restore Cursor, DG native-mode, 2-48 NEL. See Next Une New Une, DG native-mode, 2-38 Next Line, VT320/100mode, 3-42 NKM. See Numeric Keypad Mode Numeric Keypad Mode, VT320/100 mode, 3-58 Protect Enable, DG native-mode, 2-34 Protect Off, DG native-mode, 2-34 Protect On, DG native-mode, 2-34 Push, DG native-mode, 2-44 R RC. See Restore Cursor Read Bit Contents, DG native-mode, 2-90 Read Characters Remaining, DG native-mode, 2-30 Read Cursor Contents DG native-mode, 2-89 VT320/l00 mode, 3-81 Page Attributes, DG native-mode, 2-36 Read Cursor Location, DG native-mode, 2-78 Read Horizontal Scroll Offset, DG native-mode, 2-62 Read New Model 10, DG native-mode, 2-64, 2-65 Read Screen Address, DG native-mode, 2-63 PCTERM Mode, VT320/100 mode, 3-60 PEXM. See Print Extent Mode Read Window Address, DG native-mode, 2-62 Read Window Contents, DG native-mode, 2-63 Perform UART Loopback Test, DG native-mode, 2-91 Report Screen Size, DG native-mode, 2-61 p PFF. See Print Form Feed Mode Polygon Fill, DG native-mode, 2-76 Pop, DG native-mode, 2-45 Primary Device Attribute Request, VT320/100 mode, 3-71 Print Controller Mode, VT320/100 mode, 3-85 Print Cursor Line, VT320/100 mode, 3-84 Print Extent Mode, VT320/100 mode, 3-57 Print Form, DG native-mode, 2-81 Print Form Feed Mode, VT320/100 mode, 3-57 Print Pass Through Off, DG native-mode, 2-84 Print Pass Through On, DG native-mode, 2-83 Print Screen DG native-mode, 2-82 VT320/l00 mode, 3-84 Print Window, DG native-mode, 2-81 Printer Pass Back to Host, DG native-mode, 2-85 Request Mode, VT320/100 mode, 3-79 Request Presentation State Report, VT320/100 mode, 3-77 Request Selection or Setting, VT320/100 mode, 3-82 Request Terminal State Report, VT320/100 mode, 3-76 Request User-Preferred Supplemental Set, VT320/100 mode,3-81 Reserve Character, DG native-mode, 2-29 Reset, DG native-mode, 2-71 Reset Mode, VT320/l00 mode, 3-49 Restore Cursor, VT320/100 mode, 3-42 Restore Normal Margins, DG native-mode, 2-40 Restore Presentation State, VT320/100 mode, 3-79 Restore Terminal State, VT320/100 mode, 3-76 Reverse Index, VT320/100 mode, 3-42 Reverse Video Off, DG-native-mode, 2-33 Printer Port Status, VT320/100 mode, 3-75 Reverse Video On, DG native-mode, 2-33 RI. See Reverse Index Private Reset Mode, VT320/100 mode, 3-53 Private Set Mode, VT320/100 mode, 3-52 RM. See Reset Mode Roll Disable, DG native-mode, 2-54 Protect Disable, DG native-mode, 2-34 Roll Enable, DG native-mode, 2-53 014-002111 Index-7 RQM. See Request Mode RQPSR. See Request Presentation State Report RQSS. See Request Selection or Setting RQTSR. See Request Terminal State Report RQUPSS. See Request User-Preferred Supplemental Set RSPS. See Restore Presentation State RSTS. See Restore Terminal State s SASD. See Select Active Status Display Save Cursor, VT320/100 mode, 3-42 Save!Restore Screen Contents, DO native-mode, 2-49 SC. See Save Cursor SCA. See Select Character Attributes SCL. See Set Conformance Level SCRLM. See Scrolling Mode SCRNM. See Screen Mode Screen Home, DG native-mode, 2-49 Screen Mode, VT320/100 mode, 3-55 Scroll Down DG native-mode, 2-52 VT320/100 mode, 3-48 Scroll Left, DG native-mode, 2-52 Scroll Right, DG native-mode, 2-53 Scroll Up DG native-mode, 2-52 VT320/100 mode, 3-48 Scrolling Mode, VT320/100 mode, 3-55 SD. See Scroll Down SDA. See Secondary Device Attribute Request Select Printer National Character Set, DG nativemode, 2-87 Select Status Line Type, VT320/100 mode, 3-67 Selective Erase in Display, VT320/100 mode, 3-47 Selective Erase in Line, VT320/100 mode, 3-47 Set 25th Line Mode, DG native-mode, 2-44 Set Alternate Margins, DG native-mode, 2-39 Set Clock Time DG native-mode, 2-71 VT320/100 mode, 3-64 Set Conformance Level, VT320/100 mode, 3-67 Set Cursor Type, DG native-mode, 2-70 Set Device Options DG native-mode, 2-69 VT320/100 mode, 3-68 Set First Row to Display, DG native-mode, 2-68 Set Foreground Color, DG native-mode, 2-77 Set Horizontal Tab, VT320/100 mode, 3-43 Set Keyboard Languge, DG native-mode, 2-72 Set Limited Transmit, VT320/100 mode, 3-59, 3-62 Set Margins, DG native-mode, 2-39 Set Model ro, DG native-mode, 2-70 Set Pattern, DG native-mode, 2-76 Set Row Length, DG native-mode, 2-50 Set Scroll Rate, DG native-mode, 2-51 Set Split Screen Mode, DG native-mode, 2-68 Set Top and Bottom Margins, VT320/100 mode, 3-65 Set to VT52 Mode, VT320/100 mode, 3-56 Set Windows, DG native-mode, 2-43 Set/Report Language, VT320/100 mode, 3-64 SGR. See Select Graphic Rendition Secondary Device Attribute Request, VT320/l 00 mode, 3-72 Shift In DG native-mode, 2-28 VT320/100 mode, 3-32 Select 7/8 Bit Operation, DG native-mode, 2-72 Shift Lock Gl GR, VT320/100 mode, 3-33, 3-34, 3-38 Select Active Status Display, VT320/100 mode, 3-66 Shift Lock G2 GR, VT320/100 mode, 3-33, 3-34, 3-38 Select Character Attributes, VT320/100 mode, 3-38, 3-45 Shift Lock Three, VT320/100 mode, 3-33 Select Character Set, DG native-mode, 2-27 Shift Lock Two, VT320/100 mode, 3-33 Select Graphic Rendition, VT320/100 mode, 3-38 Shift Out DG native-mode, 2-28 VT320/100 mode, 3-32 Select Normal Spacing, DG native-mode, 2-48 Show Columns, DG native-mode, 2-51 Select Compressed Spacing, DG native-mode, 2-47 Index-S 014-002111 S1. See Shift In v Simulprint Off, DG native-mode, 2-86 Vertical tab, VT320/100 mode, 3-6 Simulprint On, DG native-mode, 2-85 VT-Style Autoprint Off, DG native-mode, 2-86 Single Shift Three, VT320/100 mode, 3-34, 3-38, 3-45 VT-Style Autoprint On, DG native-mode, 2-86 Single Shift Two, VT320/100 mode, 3-34, 3-38 VT320/100 by hex order OS, Answerback, 3-75 07, Bell, 3-6 08, Backspace, 3-6 09 Horizontal Tab, 3-6 Tab,3-41 OA, Linefeed, 3-6 OB, Vertical tab, 3-6 OC, Fonn feed, 3-6 OD, Carriage Return, 3-6 OE, Shift Out, 3-32 OF, Shift In, 3-32 12, Force Display (DG private), 3-66 1B 2046, Transmit 7-bit Controls, 3-61 1B 2047, Transmit 8-bit Controls, 3-61 IB 23 33, Single-width, 3-37 IB 23 34, Double-height top, 3-37 IB 23 35, Double-width, 3-37 1B 2336, Double-height bottom, 3-37 IB 23 38, Alignment, 3-63 IB 23 39, Display Character Generator Contents (DG private), 3-63 IB 28 ... , Designating Character Sets, 3-31 IB 29 ... , Designating Character Sets, 3-31 1B 2A ... , Designating Character Sets, 3-31 IB 2B .. "' Designating Character Sets, 3-31 1B 2D ... , Designating Character Sets, 3-31 1B 2E ..., Designating Character Sets, 3-31 1B 2F ... , Designating Character Sets, 3-31 1B 37, Save Cursor, 3-42 1B 38, Restore Cursor, 3-42 1B 48, Set Horizontal Tab, 3-43 1B 4D, Reverse Index, 3-42 1B 4E, Single Shift Two, 3-34, 3-38 IB 4F, Single Shift Three, 3-34, 3-38, 3-45 1B 50 ... IB 5C, Clearing Downloaded Soft Character Sets, 3-36 1B 50 ... 21 ... 1B 5C, Response to Request User-Preferred Supplemental Set, 3-81 1B 50 ... 24 70 ... IB 5C, Restore Tenninal State, 3-76 1B 50 ... 24 72 ... IB 5C, Response to Request Selection or Setting, 3-82 1B 50 ... 2474 ... IB5C, Restore Presentation State, 3-79 1B 50 ... 7B ... IB5C Assign User-Preferred Supplemental Set, 3-32, 3-33 SL2. See Shift Lock Two SL3. See Shift Lock Three SO. See Shift Out Soft Tenninal Reset, VT320/100 mode, 3-63 Split Screen, VT320/100 mode, 3-69 SS2. See Single Shift Two SS3. See Single Shift Three SSDT. See Select Status Line Type STBM. See Set Top and Bottom Margins SUo See Scroll Up Switch Emulation Mode, DG native-mode, 2-67 T Tab, VT320/100 mode, 3-41 TBC. See Clear Tab Stops TCEM. See Text Cursor Enable Mode TEK. See Tektronix 4010 Mode Tektronix 4010 Mode, Escape Sequences, list of, 4-10 Telephone assistance, iii Terminal Identification, VT320/100 mode, 3-70 Text Cursor Enable Mode, VT320/100 mode, 3-58 Transmit 7-bit Controls, VT320/100 mode, 3-61 Transmit 8-bit Controls, VT320/100 mode, 3-61 Typewriter/Data Processing Keys Mode, VT320/100 mode, 3-59 u UDK. See User Defmed Keys UNIX Mode, DG native-mode, 2-73 Underscore Off, DG native-mode, 2-33 Underscore On, DG native-mode, 2-33 User Defmed Key Status, VT320/100 mode, 3-73 User Defined Keys, VT320/100 mode, 3-62 01~02111 Index-9 Downloading Soft CharacteIS, 3-35 IB 50 ..• 7C ... IB5C, User Defined Keys, 3-62 IB 5031 24 73 ... IB 5C, Response to Request Terminal State Report, 3-76 IB 5031 24 75 ... IB 5C, Request Presentation State Report, 3-77 IB 50 34 71 •.. IB 5C, Request Selection or Setting,3-82 IB SA, Tenninal Identification, 3-70 IB 5B ... 22 71, Select Character Attributes, 3-38, 345 IB 5B ... 24 70, Request Mode, 3-79 IB 5B ... 24 77, Request Presentation State Report, 3-77 IB 5B .•. 24 79, Response to Request Mode, 3-80 IB 5B ..• 24 70, Select Active Status Display, 3-66 IB 5B ... 24 7E, Select Status Line Type, 3-67 1B 5B ..• 40, Insert Character, 3-44 IB 5B ... 41, Cursor Up, 3-39 IB 5B .•• 42, Cursor Down, 3-39 IB 5B ... 43, Cursor Forward, 3-40 1B 5B ..• 44, CUISor Backward, 3-40 1B 5B ... 48, CUISor Position, 3-40 IB 5B ... 4A, Erase in Display, 3-46 IB 5B •.• 4B, Erase in Line, 3-46 IB 5B ... 4C, Insert Line, 345, 347 IB 5B ... 50, Delete Character, 3-44 IB 5B ... 52, Response to CUISor Position Report, 3-72 1B 5B ... 53, Scroll Up, 348 1B 5B ... 54, Scroll Down, 3-48 1B 5B .•. 58, Erase Character, 3-45, 3-47 IB 5B ... 63, Primary Device Attribute Request, 3-71 1B 5B ... 66, Horizontal and Vertical Position, 341 IB 5B ... 67, Clear Tab Stops, 343 IB 5B ... 6C, Reset Mode, 349 1B 5B ... 6D, Select Graphic Rendition, 3-38 IB 5B ... 6E, Device Status Report, 3-70 IB 5B ... 70, Set Confonnance Level, 3-67 IB 5B ... 72, Set Top and Bottom Margins, 3-65 1B 5B 21 70. Soft Terminal Reset, 3-63 IB 5B 26 75, Request User-Preferred Supplemental Set, 3-81 1B 5B 31 24 75, Request Terminal State Report, 3-76 1B 5B 32 3068, Line Feed/New Line (set), 3-51 IB 5B 32 30 6C, Line Feed/New Line (reset), 3-51 IB 5B 32 68, Keyboard Action (set), 3-50 IB 5B 32 6C, Keyboard Action (reset), 3-50 IB 5B 34 69, Print Controller Mode (oft), 3-85 IB 5B 35 69, Print Controller Mode (on), 3-85 IB 5B 36 69, Bit Dump Screen, 3-65 Index-10 IB 5B 3E ... 63, Response to Secondary Device Attribute Request, 3-72 IB 5B 3E 63, Secondary Device Attribute Request, 3-72 IB 5B 3F .•. 45, Set/Report Language (DG private),3-64 IB 5B 3F ... 46, Set Clock Time (DG private), 3-64 IB 5B 3F ... 49, Split Screen (DG private), 3-69 IB 5B 3F ... 4A, Selective Erase in Display, 347 IB 5B 3F ..• 4B, Selective Erase in Line, 3-47 1B 5B 3F ..• 51, Set Device Options, 3-68 1B 5B 3F ... 63, Response to Primary Device Attribute Request, 3-71 IB 5B 3F ... 68, Private Set Mode, 3-52 1B 5B 3F ... 6C, Private Reset Mode, 3-53 IB 5B 3F 31 3768, Read CUISor Contents, 3-81 IB 5B 3F 313868, Print Form Feed Mode (set), 3-57 IB 5B 3F 31 38 6C, Print Fonn Feed Mode (reset), 3-57 1B 5B 3F 31 3968, Print Extent Mode (set), 3-57 1B 5B 3F 31 39 6C, Print Extent Mode (reset), 3-57 1B 5B 3F 31 68, Application/ANSI Cursor Keys Mode (set), 3-54 1B 5B 3F 3169, Print CUISor Line, 3-84 IB 5B 3F 31 6C, Application/ANSI CUISor Keys Mode (reset), 3-54 1B 5B 3F 32 35 68, Text Cursor Enable Mode (set), 3-58 1B 5B 3F 32 35 6C, Text Cursor Enable Mode (reset),3-58 1B 5B 3F 34 32 68, Multi/National Character Set Mode (set), 3-58 1B 5B 3F 34 32 6C, Multi/National Character Set Mode (reset), 3-58 IB 5B 3F 34 68, Scrolling Mode (set), 3-55 1B 5B 3F 34 69, Auto Print Mode (oft), 3-84 IB 5B 3F 34 6C, Scrolling Mode (reset), 3-55 1B 5B 3F 35 68, Screen Mode (set). 3-55 IB 5B 3F 35 69, Auto Print Mode (on), 3-84 IB 5B 3F 35 6C, Screen Mode (reset), 3-55 IB 5B 3F 36 36 68, Numeric Keypad Mode (set), 3-58 IB 5B 3F 36 36 6C, Numeric Keypad Mode (reset), 3-58 1B 5B 3F 36 38 68, Typewriter/Data Processing Keys Mode (set), 3-59 1B 5B 3F 36 38 6C, Typewriter/Data Processing Keys Mode (reset), 3-59 1B 5B 3F 36 68, Cursor Origin Mode (set), 3-55 IB 5B 3F 36 6C, Cursor Origin Mode (reset), 3-55 IB 5B 3F 37 68, Auto Wrap Mode (set), 3-56 IB 5B 3F 37 6C, Auto Wrap Mode (reset), 3-56 1B 5B 3F 38 68, Auto Repeat Mode (set), 3-57 IB 5B 3F 38 6C, Auto Repeat Mode (reset), 3-57 014-002111 1B 5B 3F 39 39 68, PCTERM Mode (set), 3-60 IB 5B 3F 39 39 6C, PC1ERM Mode (reset), 3-60 IB 5B 3F 47, Hot Key Switch (DG private), 3-65 IB 5B 63, Primary Device Attribute Request, 3-71 IB 5B 69, Print Screen, 3-84 1B 5D ... IB 5C, Operating System Command, 3-7 1B 5E ... 1B 5C, Private Message, 3-7 IB 5F ... 5C, Application Command, 3-7 IB 63, Hard Terminal Reset, 3-63 IB 6E, Shift Lock Two, 3-33 1B 6F, Shift Lock Three, 3-33 1B 7D, Shift Lock G2 GR, 3-33, 3-34, 3-38 1B 7E, Shift Lock Gl GR, 3-33, 3-34,3-38 80 through 9F. See IB40 through 1B 5F VT320/100 mode Alignment, 3-63 Answerback, 3-75 Application/ANSI Cursor Keys Mode, 3-54 Assign User-Preferred Supplemental Set, 3-32, 3-33 Auto Print Mode, 3-84 Auto Repeat Mode, 3-57 Auto Wrap Mode, 3-56 Bit Dump Screen, 3-65 Clear Tab Stops, 3-43 Clearing Downloaded Character Sets, 3-36 Cursor Backward, 3-40 Cursor Down, 3-39 Cursor Forward, 3-40 Cursor Origin Mode, 3-55 Cursor Position, 3-40 Cursor Position Report, 3-72 Cursor Up, 3-39 Delete Character, 3-44 Designating Character Sets, 3-31 Device Status Report, 3-70 Display Character Generator Contents, 3-63 Downloading Soft Characters, 3-35 Erase Character, 3-45, 3-47 Erase in Display, 3-46 Erase in Line, 3-46 Force Display, 3-66 Hard Terminal Reset, 3-63 Horizontal and Vertical Position, 3-41 Hot Key Switch, 3-65 Index, 3-41 Insert Character, 3-44 Insert Line, 3-45, 3-47 Keyboard Action, 3-50 Keyboard Language Report, 3-73 Line Attributes, 3-37 Line Feed/New Line, 3-51 Multi/National Character Set Mode, 3-58 Next Line, 3-42 014-002111 Numeric Keypad Mode, 3-58 PCTERM Mode, 3-60 Primary Device Attribute Request, 3-71 Print Controller Mode, 3-85 Print Cursor Line, 3-84 Print Extent Mode, 3-57 Print Form Feed Mode, 3-57 Print Screen, 3-84 Printer Port Status, 3-75 Private Reset Mode, 3-53 Private Set Mode, 3-52 Read Cursor Contents, 3-81 Request Mode, 3-79 Request Presentation State Report, 3-77 Request Selection or Setting, 3-82 Request Terminal State Report, 3-76 Request User-Preferred Supplemental Set, 3-81 Reset Mode, 3-49 Restore Cursor, 3-42 Restore Presentation State, 3-79 Restore Terminal State, 3-76 Reverse Index, 3-42 Save Cursor, 3-42 Screen Mode, 3-55 Scroll Down, 3-48 Scroll Up, 3-48 Scrolling Mode, 3-55 Secondary Device Attribute Request, 3-72 Select Active Status Display, 3-66 Select Character Attributes, 3-38, 3-45 Select Graphic Rendition, 3-38 Select Status Line Type, 3-67 Selective Erase in Display, 3-47 Selective Erase in Line, 3-47 Set Clock Time, 3-64 Set Conformance Level, 3-67 Set Device Options, 3-68 Set Horizontal Tab, 3-43 Set Limited Transmit, 3-59,3-62 Set Top and Bottom Margins, 3-65 Set to VT52 Mode, 3-56 Set/Report Language, 3-64 Shift In, 3-32 Shift Lock G1 GR, 3-33, 3-34, 3-38 Shift Lock G2 GR, 3-33, 3-34, 3-38 Shift Lock Three, 3-33 Shift Lock Two, 3-33 Shift Out, 3-32 Single Shift Three, 3-34, 3-38, 3-45 Single Shift Two, 3-34, 3-38 Soft Terminal Reset, 3-63 Split Screen, 3-69 Tab,3-41 Terminal Identification, 3-70 Text Cursor Enable Mode, 3-58 Index-11 Transmit 7-bit Controls, 3-61 Transmit 8-bit Controls, 3-61 Typewriter/Data Processing Keys Mode, 3-59 User Defmed Key Status, 3-73 User Defined Keys, 3-62 VT52 Mode, Escape Sequences, list of, 3-89 Index-12 w Window Bit Dump, DG native-mode, 2-83 Window Home, DG native-mode, 2-42 Write Window Address, DG native-mode, 2-41 014-002111 . .: .' ".. :. :::'1':': :': .":':'..:::.,:.:"'::":' ": '::'.. ::::: ':.' : : . :':." ::.' .' '. . .. : ;.':: '. : ':. :.: .';: . : :' . . .!.... : .; .: ....;::. " .-:: .: ":'.: :::.:' .:.: . . .'. .. . TO ORDER 1. An order can be placed with the TIPS group in two ways: a) MAIL ORDER - Use the order form on the opposite page and fill in all requested information. Be sure to include shipping charges and local sales tax. If applicable, write in your tax exempt number in the space provided on the order form. Send your order form with payment to: Data General Corporation ATTN: Educational Services!l'IPS G 155 4400 Computer Drive VVestboro,~ 01581-9973 b) TELEPHONE - Call TIPS at (508) 870-1600 for all orders that will be charged by credit card or paid for by purchase orders over $50.00. Operators are available from 8:30 AM to 5:00 PM EST. METHOD OF PAYMENT 2. As a customer, you have several payment options: a) Purchase Order - Minimum of $50. If ordering by mail, a hard copy of the purchase order must accompany order. b) Check or Money Order - Make payable to Data General Corporation. c) Credit Card - A minimum order of $20 is required for MasterCard or Visa orders. SHIPPING 3. To determine the charge for UPS shipping and handling, check the total quantity of units in your order and refer to the following chart: Total Quantity 1-4 Items 5-10 Items 11-40 Items 41-200 Items Over 200 Items Shipping & Handling Charge $5.00 $8.00 $10.00 $30.00 $100.00 If overnight or second day shipment is desired, this information should be indicated on the order form. A separate charge will be determined at time of shipment and added to your bill. VOLUME DISCOUNTS 4. The TIPS discount schedule is based upon the total value of the order. Order Amount $0-$149.99 $150-$499.99 Over $500 Discount 0% 10% 20% TERMS AND CONDITIONS 5. Read the TIPS terms and conditions on the reverse side ofthe order form carefully. These must be adhered to at all times. DELIVERY 6. Allow at least two weeks for delivery. RETURNS 7. Items ordered through the TIPS catalog may not be returned for credit. 8. Order discrepancies must be reported within 15 days of shipment date. Contact your TIPS Administrator at (508) 870-1600 to notify the TIPS department of any problems. INTERNATIONAL ORDERS 9. Customers outside of the United States must obtain documentation from their local Data General Subsidiary or Representative. Any TIPS orders received by Data General U.S. Headquarters will be forwarded to the appropriate DG Subsidiary or Representative for processing. TIPS ORDER FORM MaUTo: Data General Corporation Attn: Educational ServicesITlPS G155 4400 Computer Drive Westboro, MA 01581 - 9973 COMPANyNAME. ________________________ COMPANyNAME ____________________________________________________________~ AnN: ----------------------------------------------------------------------ADDRESS _______________________________ ADDRESS (NO PO ~V,"(;;'~} _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __I CITY CITY____________________________________________________________________________~ STATE,_____________ ZIP _ _ _ _ _ STATE_ _ _ _ _ _ _ _ _ ZI Priority Code _ _ _ _ _ _ _ _ (See label on back of catalog) Authorized Signarure of Buyer to terms & conditions on reverse litle Date Phone (Area Code) Ext ORDER TOTAL D UPS 1-4 Items 5-10 Items 11-40 Items 41-200 Items ADD $5.00 $8.0 $10.00 $30.00 $100.00 Order Amount $0-$149.99 $150-$499.99 Over $500.00 Save 0% Tax Exempt # or Sales Tax (if applicable) 100/0 20% + Additional chafge to be determined at time of shipment and ailded to your biU. D + TOTAL-SeeC D UPS Blue Label (2 day shipping) Red Label (ovemight shipping) D D D Purchase Order Attached ($50 minimum) P.O. number is . (Include hardcopy P.O.) Check or Money Order Enclosed Visa [] MasterCard ($20 minimum on credit cards) THANK YOU FOR YOUR ORDER Account Number Expiration Date II IIII II II IIII I II I II I I Authorized Signature (Credit card ordets without slgnalure and expiration dale cannot be processed.) PRICES SUBJECT TO CHANGE WITHOUT PRIOR NOTICE. PLEASE ALLOW 2 WEEKS FOR DELIVERY. ""NO REFUNDS NO RE"TURNS. * Data Generalis required by law to collect applicable sales or use tax on all purchases shipped to states where DG maintains a place of business, which covers all 50 states. Please Include your local taxes when determining the total value of Y\1ur order. Hyou are uncertain about the correct tax amount, please call 5Cl8-:a7Q-1600. Form 702 Rev. 8/87 DATA GENERAL CORPORATION TECHNICAL INFORMATION AND PUBLICATIONS SERVICE TERMS AND CONDITIONS Data General Corporation ("DGC") provides its Technical Information and Publications Service (TIPS) solely in accordance with the following terms and conditions and more specifically to the Customer Signing the Educational Services TIPS Order Form. These terms and conditions apply to all orders, telephone, telex, or mail. By accepting these products the Customer accepts and agrees to be bound by these terms and conditions. 1. CUSTOMER CERTIFICATION Customer hereby certifies that it is the owner or lessee of the DGC equipment andlor licensee/sub--!icensee of the software which is the subject matter of the publication(s) ordered hereunder. 2. TAXES Customer shall be responsible for all taxes, including taxes paid or payable by DGC for products or services supplied under this Agreement, exclusive of taxes based on DGC's net income, unless Customer provides written proof of exemption. 3. DATA AND PROPRIETARY RIGHTS Portions of the publications and materials supplied under this Agreement are proprietary and will be so marked. Customer shall abide by such markings. DGC retains for itself exclusively all proprietary rights (including manufacturing rights) in and to all designs, engineering details and other data pertaining to the products described in such publication. Licensed software materials are provided pursuant to the terms and conditions of the Program License Agreement (PLA) between the Customer and DGC and such PLA is made a part of and incorporated into this Agreement by reference. A copyright notice on any data by itself does not constitute or evidence a publication or public disclosure. 4. LIMITED MEDIA WARRANTY DGC warrants the CU Macros media, provided by DGC to the Customer under this Agreement, against physical defects for a period of ninety (90) days from the date of shipment by DGC. DGC will replace defective media at no charge to you, provided it is returned postage prepaid to DGC within the ninety (90) day warranty period. This shall be your exclusive remedy and DGC's sole obligation and liability for defective media. This limited media warranty does not apply if the media has been damaged by accident, abuse or misuse. 5. DISCLAIMER OF WARRANTY EXCEPT FOR THE LIMITED MEDIA WARRANTY NOTED ABOVE, DGC MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY AND FITNESS FOR PARTICULAR PURPOSE ON ANY OF THE PUBLICATIONS, CLI MACROS OR MATERIALS SUPPUED HEREUNDER. 6. LIMITATION OF LIABILITY A. CUSTOMER AGREES THAT DGC'S LIABILITY, IF ANY, FOR DAMAGES, INCLUDING BUT NOT LIMITED TO LIABILITY ARISING OUT OF CONTRACT, NEGLIGENCE, STRICT LIABILITY IN TORT OR WARRANTY SHALL NOT EXCEED THE CHARGES PAID BY CUSTOMER FOR THE PARTICULAR PUBLICATION OR CLI MACRO INVOLVED. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO CLAIMS FOR PERSONAL INJURY CAUSED SOLELY BY DGC'S NEGLIGENCE. OTHER THAN THE CHARGES REFERENCED HEREIN, IN NO EVENT SHALL DGC BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING BUT NOT LIMITED TO LOST PROFITS AND DAMAGES RESULTING FROM LOSS OF USE, OR LOST DATA, OR DELIVERY DELAYS, EVEN IF DGC HAS BEEN ADVISED, KNEW OR SHOULD HAVE KNOWN OF THE POSSIBILITY THEREOF; OR FOR ANY CLAIM BY ANY THIRD PARTY. B. ANY ACTION AGAINST DGC MUST BE COMMENCED WITHIN ONE (1) YEAR AFTER THE CAUSE OF ACTION ACCRUES. 7. GENERAL A valid contract binding upon DGC will come into being only at the time of DGC's acceptance of the referenced Educational Se!'Vi~s Order Form. Such contract is governed by the laws of the Commonwealth of Massachusetts, excluding its conflict of law rules. Such C9Jltract is not assignable. These terms and conditions constitute the entire agreement between the parties with respect to the subject matter h@reof and supersedes all prior oral or written communications, agreements and understandings. These terms and conditions shall prevailll@!Wi~standing any different, conflicting or additional terms and conditions which may appear on any order submitted by Customer. DGC hereby rejects all such different, conflicting, or additional terms. 8. IMPORTANT NOTICE REGARDING AOSNS INTERNALS SERIES (ORDER #1865 & #"1875) Customer understands that information and material presented in the AOSNS Internals Series documents may be specific to a mcular revision of the product. Consequently user programs or systems based on this information and materia[ may be revision-lo~@' a,Ad may not function properly with prior or future revisions of the product. Therefore,' Data General makes no representations as to the J,ltiJjty 91 "is information and material beyond the current revision level which is the subject of the manual. Any use thereof by you or your C$~y is at your own risk. Data General disclaims any liability arising from any such use and I and my company (Customer) hold Da@ Gener~ completely harmless therefrom.

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : No
Create Date                     : 2016:11:13 09:56:33-08:00
Modify Date                     : 2016:11:13 10:40:25-07:00
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Metadata Date                   : 2016:11:13 10:40:25-07:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:d094f998-9ae4-d64e-a256-61436a7c9839
Instance ID                     : uuid:7b03bdb2-1132-164c-a7a7-dc86a3d316a7
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 350
EXIF Metadata provided by EXIF.tools

Navigation menu