11105 lines
487 KiB
Plaintext
11105 lines
487 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Standard TECO
|
|||
|
|
|||
|
|
|||
|
TEXT EDITOR AND CORRECTOR FOR THE
|
|||
|
VAX-11, PDP-11, PDP-10, and PDP-8
|
|||
|
|
|||
|
|
|||
|
USER'S GUIDE AND LANGUAGE REFERENCE MANUAL
|
|||
|
|
|||
|
|
|||
|
May 1985 Edition
|
|||
|
|
|||
|
|
|||
|
TECO-11 VERSION 40
|
|||
|
TECO-10 VERSION 3
|
|||
|
TECO-8 VERSION 7
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
May, 1985
|
|||
|
|
|||
|
Standard TECO
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The information in this document is subject to change without
|
|||
|
notice and should not be construed as a commitment by Digital
|
|||
|
Equipment Corporation or by DECUS.
|
|||
|
|
|||
|
Neither Digital Equipment Corporation, DECUS, nor the authors
|
|||
|
assume any responsibility for the use or reliability of this
|
|||
|
document or the described software.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Copyright (C) 1979, 1985 TECO SIG
|
|||
|
|
|||
|
General permission to copy or modify, but not
|
|||
|
for profit, is hereby granted, provided that
|
|||
|
the above copyright notice is included and
|
|||
|
reference made to the fact that reproduction
|
|||
|
privileges were granted by the TECO SIG.
|
|||
|
|
|||
|
Standard TECO PAGE i
|
|||
|
|
|||
|
|
|||
|
|
|||
|
CONTENTS
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
INTRODUCTION 1
|
|||
|
|
|||
|
PREFACE TO THE MAY 1985 EDITION 4
|
|||
|
|
|||
|
CHAPTER 1 BASICS OF TECO 7
|
|||
|
|
|||
|
1.1 USING TECO 7
|
|||
|
1.2 DATA STRUCTURE FUNDAMENTALS 9
|
|||
|
1.3 FILE SELECTION COMMANDS 10
|
|||
|
1.3.1 Simplified File Selection 10
|
|||
|
1.3.2 Input File Specification (ER command) 11
|
|||
|
1.3.3 Output File Specification (EW command) 12
|
|||
|
1.3.4 Closing Files (EX command) 13
|
|||
|
1.4 INPUT AND OUTPUT COMMANDS 14
|
|||
|
1.5 POINTER POSITIONING COMMANDS 15
|
|||
|
1.6 TYPE OUT COMMANDS 16
|
|||
|
1.6.1 Immediate Inspection Commands 17
|
|||
|
1.7 TEXT MODIFICATION COMMANDS 18
|
|||
|
1.8 SEARCH COMMANDS 19
|
|||
|
1.9 SAMPLE EDITING JOB 20
|
|||
|
|
|||
|
INTERLUDE 23
|
|||
|
|
|||
|
CHAPTER 2 INVOKING TECO 24
|
|||
|
|
|||
|
2.1 RUNNING TECO 24
|
|||
|
2.2 CREATING A NEW FILE 24
|
|||
|
2.3 EDITING AN EXISTING FILE 24
|
|||
|
2.4 SWITCHES ON TECO AND MAKE COMMANDS 25
|
|||
|
2.5 INVOKING A TECO PROGRAM 26
|
|||
|
2.6 USER INITIALIZATION 27
|
|||
|
|
|||
|
CHAPTER 3 CONVENTIONS AND STRUCTURES 29
|
|||
|
|
|||
|
3.1 TECO CHARACTER SET 29
|
|||
|
3.2 TECO COMMAND FORMAT 30
|
|||
|
3.2.1 Numeric Arguments 31
|
|||
|
3.2.2 Text Arguments 32
|
|||
|
3.2.3 Colon Modifiers 33
|
|||
|
3.3 DATA STRUCTURES 34
|
|||
|
3.3.1 Text Buffer 35
|
|||
|
3.3.2 Q-registers 36
|
|||
|
3.3.3 Q-register Push-down List 37
|
|||
|
3.3.4 Numeric Values and Flags 37
|
|||
|
|
|||
|
Standard TECO PAGE ii
|
|||
|
|
|||
|
|
|||
|
|
|||
|
CHAPTER 4 COMMAND STRING EDITING 38
|
|||
|
|
|||
|
4.1 Immediate Action Editing Characters 38
|
|||
|
4.2 Immediate Action Commands 41
|
|||
|
4.3 Introduction to Macros 43
|
|||
|
4.4 Immediate ESCAPE-Sequence Commands 44
|
|||
|
4.5 Operating System Character Filters 46
|
|||
|
|
|||
|
CHAPTER 5 COMMAND DESCRIPTIONS 48
|
|||
|
|
|||
|
5.1 FILE SPECIFICATION COMMANDS 49
|
|||
|
5.1.1 File Opening Commands 49
|
|||
|
5.1.2 File Specification Switches 51
|
|||
|
5.1.3 File Close and Exit Commands 51
|
|||
|
5.1.4 Secondary Stream Commands 54
|
|||
|
5.1.5 Wildcard Commands 56
|
|||
|
5.1.6 Direct I/O to Q-Registers 56
|
|||
|
5.2 PAGE MANIPULATION COMMANDS 58
|
|||
|
5.3 BUFFER POINTER MANIPULATION COMMANDS 61
|
|||
|
5.4 TEXT TYPE OUT COMMANDS 63
|
|||
|
5.5 DELETION COMMANDS 66
|
|||
|
5.6 INSERTION COMMANDS 68
|
|||
|
5.7 SEARCH COMMANDS 70
|
|||
|
5.8 SEARCH ARGUMENTS 76
|
|||
|
5.9 Q-REGISTER MANIPULATION 80
|
|||
|
5.10 ARITHMETIC AND EXPRESSIONS 86
|
|||
|
5.11 SPECIAL NUMERIC VALUES 89
|
|||
|
5.12 COMMAND LOOPS 94
|
|||
|
5.13 BRANCHING COMMANDS 95
|
|||
|
5.14 CONDITIONAL EXECUTION COMMANDS 101
|
|||
|
5.15 RETRIEVING ENVIRONMENT CHARACTERISTICS 103
|
|||
|
5.16 MODE CONTROL FLAGS 105
|
|||
|
5.17 SCOPE COMMANDS 113
|
|||
|
5.17.1 Video Terminal Scope Commands 113
|
|||
|
5.17.2 Refresh Scope Commands 116
|
|||
|
5.18 PROGRAMMING AIDS 117
|
|||
|
5.18.1 Text Formatting 117
|
|||
|
5.18.2 Comments 117
|
|||
|
5.18.3 Messages 118
|
|||
|
5.18.4 Tracing 119
|
|||
|
5.18.5 Convenience Characters 119
|
|||
|
5.18.6 Memory Expansion 120
|
|||
|
5.18.7 Case Control 121
|
|||
|
5.19 MANIPULATING LARGE PAGES 122
|
|||
|
5.20 TECHNIQUES AND EXAMPLES 123
|
|||
|
|
|||
|
Standard TECO PAGE iii
|
|||
|
|
|||
|
|
|||
|
|
|||
|
APPENDIX A ASCII CHARACTER SET 128
|
|||
|
|
|||
|
APPENDIX B ERROR MESSAGES 137
|
|||
|
|
|||
|
APPENDIX C INCOMPATIBLE, OBSOLETE, AND SYSTEM-SPECIFIC
|
|||
|
COMMANDS 145
|
|||
|
|
|||
|
C.1 SPECIFIC FEATURES OF TECO-11 145
|
|||
|
C.1.1 TECO Commands 145
|
|||
|
C.1.2 String Build Constructs 147
|
|||
|
C.2 SPECIFIC FEATURES OF RT-11 148
|
|||
|
C.3 SPECIFIC FEATURES OF RSTS/E 148
|
|||
|
C.4 SPECIFIC FEATURES OF RSX-11/M, RSX-11/D,
|
|||
|
and IAS 149
|
|||
|
C.5 SPECIFIC FEATURES OF VAX/VMS 149
|
|||
|
C.6 SPECIFIC FEATURES OF OS/8 149
|
|||
|
C.7 SPECIFIC FEATURES OF TOPS-10 150
|
|||
|
|
|||
|
APPENDIX D RT-11 OPERATING CHARACTERISTICS 153
|
|||
|
|
|||
|
APPENDIX E RSTS/E OPERATING CHARACTERISTICS 157
|
|||
|
|
|||
|
APPENDIX F RSX-11 OPERATING CHARACTERISTICS 160
|
|||
|
|
|||
|
APPENDIX G VAX/VMS OPERATING CHARACTERISTICS 167
|
|||
|
|
|||
|
APPENDIX H OS/8 OPERATING CHARACTERISTICS 175
|
|||
|
|
|||
|
APPENDIX I TOPS-10 OPERATING CHARACTERISTICS 187
|
|||
|
|
|||
|
APPENDIX J BASIC-PLUS/BASIC-PLUS-2 HANDLING 194
|
|||
|
|
|||
|
GLOSSARY 197
|
|||
|
|
|||
|
INDEX 214
|
|||
|
|
|||
|
Standard TECO PAGE 1
|
|||
|
Introduction
|
|||
|
|
|||
|
|
|||
|
INTRODUCTION
|
|||
|
|
|||
|
TECO is a powerful text editing language available under most
|
|||
|
DIGITAL operating systems. TECO may be used to edit any form of
|
|||
|
ASCII text: program sources, command procedures, or manuscripts,
|
|||
|
for example. TECO is a character-oriented editor, and also
|
|||
|
offers a number of facilities for dealing with lines of text.
|
|||
|
|
|||
|
You can use TECO interactively, issuing commands which are to be
|
|||
|
executed as soon as they are typed in. (TECO is an interpreter.)
|
|||
|
In this mode, TECO can be used for tasks ranging from very simple
|
|||
|
to quite complex.
|
|||
|
|
|||
|
You can write sequences of commands called macros, which can be
|
|||
|
stored and then invoked by short commands or even single
|
|||
|
keystrokes. You can write sequences of commands to be run as
|
|||
|
TECO programs, and store them on disk for execution at
|
|||
|
convenience.
|
|||
|
|
|||
|
TECO can be used as an implementation language, as it provides
|
|||
|
powerful primitive functions for text processing, screen
|
|||
|
handling, and keyboard management. (The VTEDIT program included
|
|||
|
with some TECO distributions is an example of a full keypad
|
|||
|
editor developed in the TECO language.)
|
|||
|
|
|||
|
TECO correctly handles most sequential ASCII formats supported by
|
|||
|
the operating systems upon which it runs. It provides flexible
|
|||
|
pattern-matching constructs for text searching, file wildcarding,
|
|||
|
and special support for editing BASIC-PLUS/BASIC-PLUS-2 source
|
|||
|
programs. A split screen scrolling feature allows command
|
|||
|
dialogue to share the screen with an automatically-updated window
|
|||
|
into the editing buffer.
|
|||
|
|
|||
|
TECO's syntax is terse; commands are designed to minimize
|
|||
|
keystrokes. Also, the versatility of TECO "in all its glory"
|
|||
|
makes it complex. However, just a few commands suffice to get
|
|||
|
real work done, and a novice TECO user can begin creating and
|
|||
|
editing text files after only a few hours of instruction. More
|
|||
|
powerful features can be learned one at a time, and at leisure.
|
|||
|
|
|||
|
This manual presents TECO in two stages. The first part (Chapter
|
|||
|
1) contains basic information and introduces that set of "just a
|
|||
|
few" commands.
|
|||
|
|
|||
|
Subsequent chapters describe the full TECO command set, including
|
|||
|
a review of the those commands presented in Chapter 1. These
|
|||
|
chapters also introduce the concept of TECO as a programming
|
|||
|
language and explain how basic editing commands may be combined
|
|||
|
into "programs" sophisticated enough to handle the most
|
|||
|
complicated editing tasks.
|
|||
|
|
|||
|
The early sections of this manual include few specific examples
|
|||
|
of commands, since all TECO commands have a consistent, logical
|
|||
|
|
|||
|
Standard TECO PAGE 2
|
|||
|
Introduction
|
|||
|
|
|||
|
|
|||
|
format which will quickly become apparent to the beginning user.
|
|||
|
There is, however, an extensive example at the end of Chapter 1
|
|||
|
which employs most of the commands introduced up to that point.
|
|||
|
Students of TECO should experiment with each command as it is
|
|||
|
introduced, and then duplicate the examples on their computer.
|
|||
|
|
|||
|
(If a video terminal which supports split-screen scrolling such
|
|||
|
as a member of the VT100 or VT200 families is available and the
|
|||
|
TECO being used supports it, seeing both your commands and their
|
|||
|
effects in the text buffer simultaneously can make learning
|
|||
|
easier. A command such as "5,7:W" allows 5 lines for command
|
|||
|
dialogue, while "watching" the text buffer on the remainder of
|
|||
|
the screen. The 7:W command is described in Table 5-17B.)
|
|||
|
|
|||
|
This manual is intended to be a reference manual, and except for
|
|||
|
Chapter 1 is not a tutorial. After Chapter 1, it is assumed that
|
|||
|
the reader has a general familiarity with TECO and is referring
|
|||
|
to this manual to find detailed information.
|
|||
|
|
|||
|
|
|||
|
Notation
|
|||
|
|
|||
|
The following notation is used in this manual to represent
|
|||
|
special characters:
|
|||
|
|
|||
|
Notation ASCII code (octal) Name
|
|||
|
|
|||
|
<NULL> 0 Null
|
|||
|
<BS> 10 Backspace
|
|||
|
<TAB> 11 Tab
|
|||
|
<LF> 12 Line Feed
|
|||
|
<VT> 13 Vertical Tab
|
|||
|
<FF> 14 Form Feed
|
|||
|
<CR> 15 Carriage Return
|
|||
|
<ESCAPE> or $ 33 ESCape or Altmode
|
|||
|
<CTRL/x> - Control-x
|
|||
|
<space> 40 Space
|
|||
|
<DELETE> 177 Delete or Rubout
|
|||
|
|
|||
|
<DELIM> or ` - See below
|
|||
|
|
|||
|
<DELIM> is a character used to signify the end of text strings
|
|||
|
and TECO commands typed at the console. (TECO presumes that you
|
|||
|
may need to deal with carriage return and line feed as ordinary
|
|||
|
characters in ASCII text, so another character must be used as
|
|||
|
TECO's text-string and command-string delimiter.)
|
|||
|
|
|||
|
When a command string is being executed, TECO looks for the
|
|||
|
ESCape character (octal 033) as its delimiter. Some newer
|
|||
|
terminals, however, no longer possess an ESCape key. Late-model
|
|||
|
TECO's are capable of recognizing a surrogate (some other,
|
|||
|
user-specified) character as signifying an ESCape when typed at
|
|||
|
the console. Such a character echos as accent grave -- you see
|
|||
|
|
|||
|
Standard TECO PAGE 3
|
|||
|
Introduction
|
|||
|
|
|||
|
|
|||
|
an ` character, and TECO receives an ESCape character. (Note
|
|||
|
that TECO programs, command files, and macros cannot use the
|
|||
|
surrogate, since it is translated to ESCape only when you type it
|
|||
|
at the console.) For details on choosing a surrogate for ESCape,
|
|||
|
see the EE flag or the 8192 ET bit (section 5.16).
|
|||
|
|
|||
|
Throughout this manual, the term <DELIM> is used to mean whatever
|
|||
|
character you type as a text-string or command-string delimiter.
|
|||
|
The ` character is used throughout to mean whichever character is
|
|||
|
echoed for a keystroke which passes an ESCape to TECO; if no
|
|||
|
ESCape surrogate is active, you will see a $ instead.
|
|||
|
|
|||
|
Control characters, <CTRL/x>, are produced by striking the
|
|||
|
CONTROL key and a character key simultaneously.
|
|||
|
|
|||
|
Throughout this manual, upper case characters will be used to
|
|||
|
represent TECO commands.
|
|||
|
|
|||
|
Standard TECO PAGE 4
|
|||
|
Preface to the May 1985 edition
|
|||
|
|
|||
|
|
|||
|
PREFACE TO THE MAY 1985 EDITION
|
|||
|
|
|||
|
|
|||
|
Trading in the ESCape key
|
|||
|
|
|||
|
In the beginning, terminals had ESCape keys. (Go back far
|
|||
|
enough and the device TT: stands for might actually have
|
|||
|
existed on the system, too.) Programs wanting to treat <CR>
|
|||
|
& Co. as data needed another character to serve as command
|
|||
|
delimiter, and ESCape looked available.
|
|||
|
|
|||
|
Times change. Welcome to ESCape sequences, to
|
|||
|
cursor-control and function keys. Farewell to $$.
|
|||
|
|
|||
|
See the Introduction for the notation used in this manual.
|
|||
|
Hello ``.
|
|||
|
|
|||
|
|
|||
|
Changes to the manual
|
|||
|
|
|||
|
This edition of the manual incorporates new material
|
|||
|
pertinent to the enhancements to TECO-11 between Version 36
|
|||
|
and Version 40 (see below).
|
|||
|
|
|||
|
Although this manual is still not intended to be a tutorial,
|
|||
|
some "how to learn" suggestions (such as use of split-screen
|
|||
|
scrolling) were added, as were indications of how TECO can
|
|||
|
be used to build custom-designed editors.
|
|||
|
|
|||
|
Numerous smaller changes were also made: clarifications,
|
|||
|
new index and glossary entries, additional explanatory
|
|||
|
material and cross referrals, correction of old typographic
|
|||
|
errors, and (no doubt) addition of new ones.
|
|||
|
|
|||
|
Standard TECO PAGE 5
|
|||
|
Preface to the May 1985 edition
|
|||
|
|
|||
|
|
|||
|
From Version 36 to Version 40 - affected section numbers
|
|||
|
|
|||
|
Manual organization/additions --
|
|||
|
|
|||
|
Introduction to Macros (new section), 4.3
|
|||
|
|
|||
|
Split-screen scrolling, 5.17
|
|||
|
|
|||
|
"Immediate action commands" renamed
|
|||
|
to "immediate inspection commands", 1,6.1
|
|||
|
|
|||
|
"Immediate action editing characters" (new name), 4.1
|
|||
|
|
|||
|
VAX/VMS filespec qualifiers, format/attribute table, G.11
|
|||
|
|
|||
|
Eight-bit ASCII character set table, Appendix A
|
|||
|
|
|||
|
Handling for BASIC-PLUS-x source files, Appendix J
|
|||
|
|
|||
|
"Significant" software changes --
|
|||
|
|
|||
|
ESCape surrogate - EE flag, 8192 ET bit, 5.16
|
|||
|
|
|||
|
Reverse paging (-P, et al, VAX/VMS only), 5.2
|
|||
|
|
|||
|
Reverse searching (-N, et al, VAX/VMS only), 5.7
|
|||
|
|
|||
|
Local Q-registers, 3.3.2
|
|||
|
|
|||
|
Local Q-register manipulation, 5.9
|
|||
|
|
|||
|
Immediate ESCape-sequence commands, 4.4
|
|||
|
|
|||
|
:^T, read/decode a keystroke, 5.11
|
|||
|
|
|||
|
32 ED bit controls immediate ESC-seq commands, 5.16
|
|||
|
|
|||
|
Acceptance and handling of 8-bit characters, [throughout]
|
|||
|
|
|||
|
Typeout of 8-bit data, and the 4096 ET bit, 5.16
|
|||
|
|
|||
|
n:^T, one-shot binary-mode character typeout, 5.4
|
|||
|
|
|||
|
TECO HELP facilities on VAX/VMS, G.13
|
|||
|
|
|||
|
"Minor" software changes --
|
|||
|
|
|||
|
^W as immediate mode command (screen re-paint), 4.2
|
|||
|
|
|||
|
<DELIM> character as immediate inspection command, 1.6.1,
|
|||
|
4.2
|
|||
|
|
|||
|
Null tag allowed in computed GOTO, 5.13
|
|||
|
|
|||
|
Standard TECO PAGE 6
|
|||
|
Preface to the May 1985 edition
|
|||
|
|
|||
|
|
|||
|
|
|||
|
nFRtext` command (replace n characters), 5.6
|
|||
|
|
|||
|
m,nFRtext` command (replace from m to n), 5.6
|
|||
|
|
|||
|
^E (form feed flag) can now be user-set, 5.11
|
|||
|
|
|||
|
Setting 1:W changes width and O/S characteristic, 5.17
|
|||
|
|
|||
|
WRAP/NOWRAP set by 256 ET bit on VAX/VMS, 5.16
|
|||
|
|
|||
|
128 ED bit inhibits auto-refresh in split scrolling, 5.16
|
|||
|
|
|||
|
Search matching with diacritical marks, 5.16
|
|||
|
|
|||
|
New 0:W codes for VT102 and GIGI scope types, 5.17
|
|||
|
|
|||
|
VAX/VMS handling of ^T (disabled when), 4.5
|
|||
|
|
|||
|
Standard TECO PAGE 7
|
|||
|
Basics of TECO
|
|||
|
|
|||
|
|
|||
|
CHAPTER 1
|
|||
|
|
|||
|
BASICS OF TECO
|
|||
|
|
|||
|
|
|||
|
1.1 USING TECO
|
|||
|
|
|||
|
TECO may be called from command level by typing the appropriate
|
|||
|
command, followed by a carriage return:
|
|||
|
|
|||
|
For RT-11, OS/8, TOPS-10, and TOPS-20 R TECO
|
|||
|
|
|||
|
For RSTS/E RUN TECO$:TECO -or-
|
|||
|
EDIT/TECO
|
|||
|
|
|||
|
For RSX-11 RUN $TEC
|
|||
|
|
|||
|
For VAX/VMS RUN SYS$SYSTEM:TECO
|
|||
|
|
|||
|
TECO will respond by printing an asterisk at the left margin to
|
|||
|
indicate that it is ready to accept user commands. At this
|
|||
|
point, you may type one or more commands.
|
|||
|
|
|||
|
A TECO command consists of one or two characters which cause a
|
|||
|
specific operation to be performed. Some TECO commands may be
|
|||
|
preceded or followed by arguments. Arguments may be either
|
|||
|
numeric or textual. A numeric argument is simply an integer
|
|||
|
value which can be used to indicate, for example, the number of
|
|||
|
times a command should be executed. A text argument is a string
|
|||
|
of ASCII characters which might be, for example, words of text or
|
|||
|
a file specification.
|
|||
|
|
|||
|
If a command requires a numeric argument, the numeric argument
|
|||
|
always precedes the command. If a command requires a text
|
|||
|
argument, the text argument always follows the command. Each
|
|||
|
text argument is terminated by a special character (usually a
|
|||
|
<DELIM> character, which TECO hears as an ESCape - see
|
|||
|
Introduction). This indicates to TECO that the next character
|
|||
|
typed will be the first character of a new command.
|
|||
|
|
|||
|
TECO accumulates commands as they are typed in a command string,
|
|||
|
and executes commands upon receipt of two consecutive <DELIM>
|
|||
|
characters. <DELIM> may be any character you select (if your
|
|||
|
TECO and operating system support user-selectable ESCape
|
|||
|
surrogates - see sections on ET and EE flags). When you type the
|
|||
|
character you have designated as <DELIM>, TECO receives an ESCape
|
|||
|
character, and an ` (accent grave) is echoed. (If you are not
|
|||
|
using an ESCape surrogate -- that is, you are actually pressing
|
|||
|
an ESCape key -- a dollar sign is echoed.) The accent grave
|
|||
|
character is used in examples throughout this manual to represent
|
|||
|
typed <DELIM>s. Note that the carriage return character has no
|
|||
|
special significance to TECO; only the <DELIM><DELIM> forces
|
|||
|
execution of the command string.
|
|||
|
|
|||
|
Standard TECO PAGE 8
|
|||
|
Using TECO
|
|||
|
|
|||
|
|
|||
|
TECO executes command strings from left to right until either all
|
|||
|
commands have been executed or a command error is recognized. It
|
|||
|
then prints an asterisk to signal that additional commands may be
|
|||
|
entered.
|
|||
|
|
|||
|
If TECO encounters an erroneous command, it prints an error
|
|||
|
message and ignores the erroneous command as well as all commands
|
|||
|
which follow it. All error messages are of the form:
|
|||
|
|
|||
|
?XXX Message
|
|||
|
|
|||
|
where XXX is an error code and the message is a description of
|
|||
|
the error. Some error messages mention the specific character or
|
|||
|
string of characters in error. In these error messages, TECO
|
|||
|
represents the non-printing special characters as follows:
|
|||
|
|
|||
|
Character Form Displayed
|
|||
|
|
|||
|
<TAB> <TAB>
|
|||
|
<LF> <LF>
|
|||
|
<VT> <VT>
|
|||
|
<FF> <FF>
|
|||
|
<CR> <CR>
|
|||
|
<ESCAPE> <ESC>
|
|||
|
<CTRL/x> <^x>
|
|||
|
|
|||
|
|
|||
|
Every error message is followed by an asterisk at the left
|
|||
|
margin, indicating that TECO is ready to accept additional
|
|||
|
commands. If you type a single question mark character after a
|
|||
|
TECO-generated error message, TECO will print the erroneous
|
|||
|
command string up to and including the character which caused the
|
|||
|
error message. This helps you to find errors in long command
|
|||
|
strings and to determine how much of a command string was
|
|||
|
executed before the error was encountered.
|
|||
|
|
|||
|
You can correct typing errors by hitting the DELETE key, which
|
|||
|
may be labeled DEL or RUBOUT on your keyboard. Each depression
|
|||
|
of the DELETE key deletes one character and echoes it on your
|
|||
|
terminal, beginning with the last character typed. If your
|
|||
|
terminal is a CRT, TECO will actually erase the deleted character
|
|||
|
from the screen. You can delete an entire command string this
|
|||
|
way, if necessary. To delete an entire line of commands, enter
|
|||
|
the character <CTRL/U>, typed by holding down the CONTROL key
|
|||
|
while depressing the "U" key.
|
|||
|
|
|||
|
When you are done editing, use the EX command to exit TECO, as
|
|||
|
described below in section 1.3.4.
|
|||
|
|
|||
|
Standard TECO PAGE 9
|
|||
|
Data Structure Fundamentals
|
|||
|
|
|||
|
|
|||
|
1.2 DATA STRUCTURE FUNDAMENTALS
|
|||
|
|
|||
|
TECO considers any string of ASCII codes to be text. Text is
|
|||
|
broken down into units of characters, lines, and pages. A
|
|||
|
character is one ASCII code. A line of text is a string of ASCII
|
|||
|
codes including one line terminator (usually a line feed) as the
|
|||
|
last character on the line. A page of text is a string of ASCII
|
|||
|
codes including one form feed character as the last character on
|
|||
|
the page.
|
|||
|
|
|||
|
TECO maintains a text buffer in which text is stored. The buffer
|
|||
|
usually contains one page of text, but the terminating form feed
|
|||
|
character never appears in the buffer. TECO also maintains a
|
|||
|
text buffer pointer. The pointer is a movable position indicator
|
|||
|
which is never located directly on a character, but is always
|
|||
|
between characters: between two characters in the buffer, before
|
|||
|
the first character in the buffer, or after the last character in
|
|||
|
the buffer.
|
|||
|
|
|||
|
Line feed and form feed characters are inserted automatically by
|
|||
|
TECO. A line feed is automatically appended to every carriage
|
|||
|
return typed to TECO and a form feed is appended to the contents
|
|||
|
of the buffer by certain output commands. Additional line feed
|
|||
|
and form feed characters may be entered into the buffer as text.
|
|||
|
If a form feed character is entered into the buffer, it will
|
|||
|
cause a page break upon output; text following the form feed
|
|||
|
will begin a new page.
|
|||
|
|
|||
|
Finally, TECO maintains an input file and an output file, both of
|
|||
|
which are selected by the user through file specification
|
|||
|
commands. The input file may be on any device from which text
|
|||
|
may be accepted. The output file may be on any device on which
|
|||
|
edited text may be written.
|
|||
|
|
|||
|
TECO functions as a "pipeline" editor. Text is read from the
|
|||
|
input file into the text buffer, and is written from the buffer
|
|||
|
onto the output file. In the VAX/VMS implementation, it is
|
|||
|
possible to "back up" as well as page forward in the file being
|
|||
|
edited. In other implementations, once text has been written to
|
|||
|
the output file, it cannot be accessed again without closing the
|
|||
|
output file and reopening it as an input file.
|
|||
|
|
|||
|
Standard TECO PAGE 10
|
|||
|
File Selection Commands
|
|||
|
|
|||
|
|
|||
|
1.3 FILE SELECTION COMMANDS
|
|||
|
|
|||
|
Input and output files may be specified to TECO in several ways.
|
|||
|
The following sections present first a simple method for
|
|||
|
specifying files, and then more sophisticated commands that
|
|||
|
permit flexible file selection.
|
|||
|
|
|||
|
|
|||
|
NOTE
|
|||
|
|
|||
|
All of the following file selection commands are shown
|
|||
|
with a general argument of "filespec". The actual
|
|||
|
contents of this filespec argument are operating system
|
|||
|
dependent. See the operating characteristics appendices.
|
|||
|
Examples include a mixture of file specifications from
|
|||
|
various operating systems.
|
|||
|
|
|||
|
|
|||
|
1.3.1 Simplified File Selection
|
|||
|
|
|||
|
For most simple applications, you can use special operating
|
|||
|
system commands to specify the name of the file you wish to edit
|
|||
|
at the same time that you start up TECO.
|
|||
|
|
|||
|
To create a new file:
|
|||
|
|
|||
|
MAKE filespec
|
|||
|
|
|||
|
This command starts up TECO and creates the specified file for
|
|||
|
output.
|
|||
|
|
|||
|
To edit an existing file:
|
|||
|
|
|||
|
TECO filespec
|
|||
|
|
|||
|
This command starts up TECO and opens the specified file for
|
|||
|
editing while preserving the original file (as a backup file).
|
|||
|
It also automatically brings the first page of the file into the
|
|||
|
text buffer. These functions simulate the EB command described
|
|||
|
in Chapter 5.
|
|||
|
|
|||
|
If any of the above commands do not seem to work on your
|
|||
|
operating system, consult the appropriate appendix for
|
|||
|
information about how to install TECO and its associated
|
|||
|
operating system commands.
|
|||
|
|
|||
|
Standard TECO PAGE 11
|
|||
|
File Selection Commands
|
|||
|
|
|||
|
|
|||
|
1.3.2 Input File Specification (ER command)
|
|||
|
|
|||
|
TECO will accept input text from any input device in the
|
|||
|
operating system. The input device may be specified by the text
|
|||
|
string supplied in the ER command (and which, like any text
|
|||
|
argument, is terminated by a <DELIM> character). The ER command
|
|||
|
causes TECO to open the specified file or print an error message
|
|||
|
if the file is not found. This command does not cause any
|
|||
|
portion of the file to be read into the text buffer, however.
|
|||
|
The following examples illustrate use of the ER command.
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
ERfilespec` General form of the ER command where
|
|||
|
"filespec" is the designation of the input
|
|||
|
file. The command is terminated by a <DELIM>
|
|||
|
character.
|
|||
|
|
|||
|
ERPR:` Prepare to read an input file from the paper
|
|||
|
tape reader.
|
|||
|
|
|||
|
ERPROG.MAC` Prepare to read input file PROG.MAC from the
|
|||
|
system's default device.
|
|||
|
|
|||
|
ERDX1:PROG.FOR` Prepare to read input file PROG.FOR from
|
|||
|
DX1:.
|
|||
|
|
|||
|
|
|||
|
TECO will only keep one input and one output file open and
|
|||
|
selected at a time. The current input file may be changed by
|
|||
|
simply using the ER command to specify a new file.
|
|||
|
|
|||
|
It is not always necessary to specify an input file. If you want
|
|||
|
to create a file without using any previously edited text as
|
|||
|
input, you may type commands to insert the necessary text
|
|||
|
directly into the text buffer from the keyboard and, at the end
|
|||
|
of each page, write the contents of the buffer onto an output
|
|||
|
file. Since all input is supplied from the keyboard, no input
|
|||
|
file is necessary.
|
|||
|
|
|||
|
Standard TECO PAGE 12
|
|||
|
File Selection Commands
|
|||
|
|
|||
|
|
|||
|
1.3.3 Output File Specification (EW command)
|
|||
|
|
|||
|
TECO will write output text onto any output device in the
|
|||
|
operating system. The output file may be specified by means of
|
|||
|
the text string supplied in an EW command. If the output device
|
|||
|
is a file-structured device (for example, a disk), the file name
|
|||
|
and any extension must be supplied. If a file name is specified
|
|||
|
but no device is explicitly specified, the system's default
|
|||
|
device is assumed. The following examples illustrate use of the
|
|||
|
EW command.
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
EWfilespec` General form of the EW command where
|
|||
|
"filespec" is the designation of the output
|
|||
|
file. The command is terminated by a <DELIM>
|
|||
|
character.
|
|||
|
|
|||
|
EWSYS:TEXT.LST` Prepare to write output file TEXT.LST on
|
|||
|
SYS:.
|
|||
|
|
|||
|
EWPROG` Prepare to write output file PROG on the
|
|||
|
system's default device.
|
|||
|
|
|||
|
ERDX1:INPUT.MAC`EWOUTPUT.MAC``
|
|||
|
Open an input file INPUT.MAC to be found on
|
|||
|
DX1: and open an output file named
|
|||
|
OUTPUT.MAC. The double <DELIM> (echoed as
|
|||
|
``) terminates the command string and causes
|
|||
|
the string to be executed. Note that the
|
|||
|
<DELIM> which terminates the EW command may
|
|||
|
be one of the two <DELIM>s which terminates
|
|||
|
the command string.
|
|||
|
|
|||
|
|
|||
|
You do not need to specify an output file if you only want to
|
|||
|
examine an input file, without making permanent changes or
|
|||
|
corrections. In this case, the contents of the input file may be
|
|||
|
read into the text buffer page by page and examined at the
|
|||
|
terminal. Since all output is printed on the user terminal, no
|
|||
|
output file is needed.
|
|||
|
|
|||
|
Standard TECO PAGE 13
|
|||
|
File Selection Commands
|
|||
|
|
|||
|
|
|||
|
1.3.4 Closing Files (EX command)
|
|||
|
|
|||
|
When you are finished editing a file, use the EX command to close
|
|||
|
out the file and exit from TECO. The current contents of the
|
|||
|
text buffer and any portion of the input file that has not been
|
|||
|
read yet are copied to the output file before TECO exits. The EX
|
|||
|
command takes no arguments.
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
EX Write the text buffer to the current output
|
|||
|
file, move the remainder of the current input
|
|||
|
file to the current output file, close the
|
|||
|
output file, then return to the operating
|
|||
|
system.
|
|||
|
|
|||
|
ERFILE.MAC`EWCOPY.MAC`EX``
|
|||
|
Open an input file FILE.MAC and open an
|
|||
|
output file named COPY.MAC, then copy all the
|
|||
|
text in the input file to the output file,
|
|||
|
close the output file, and exit from TECO.
|
|||
|
|
|||
|
Standard TECO PAGE 14
|
|||
|
Input and Output Commands
|
|||
|
|
|||
|
|
|||
|
1.4 INPUT AND OUTPUT COMMANDS
|
|||
|
|
|||
|
The following commands permit pages of text to be read into the
|
|||
|
TECO text buffer from an input file or written from the buffer
|
|||
|
onto an output file. Once a page of text has been written onto
|
|||
|
the output file, it cannot be recalled into the text buffer
|
|||
|
unless the output file is closed and reopened as an input file.
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
Y Clear the text buffer, then read the next page of the
|
|||
|
input file into the buffer. Since the Y command causes
|
|||
|
the contents of the text buffer to be lost, it is not
|
|||
|
permitted if an output file is open and there is text in
|
|||
|
the buffer.
|
|||
|
|
|||
|
P Write the contents of the text buffer onto the next page
|
|||
|
of the output file, then clear the buffer and read the
|
|||
|
next page of the input file into the buffer.
|
|||
|
|
|||
|
nP Execute the P command n times. If n is not specified, a
|
|||
|
value of 1 is assumed.
|
|||
|
|
|||
|
After each Y, P, or nP command, TECO positions the pointer before
|
|||
|
the first character in the buffer.
|
|||
|
|
|||
|
Standard TECO PAGE 15
|
|||
|
Pointer Positioning Commands
|
|||
|
|
|||
|
|
|||
|
1.5 POINTER POSITIONING COMMANDS
|
|||
|
|
|||
|
The buffer pointer provides the means of specifying the location
|
|||
|
within a block of text at which insertions, deletions or
|
|||
|
corrections are to be made. The following commands permit the
|
|||
|
buffer pointer to be moved to a position between any two adjacent
|
|||
|
characters in the buffer.
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
J Move the pointer to the beginning of the buffer.
|
|||
|
|
|||
|
L Move the pointer forward to a position between the next
|
|||
|
line feed and the first character of the next line. That
|
|||
|
is, advance the pointer to the beginning of the next
|
|||
|
line.
|
|||
|
|
|||
|
nL Execute the L command n times, where n is a signed
|
|||
|
integer. A positive value of n moves the pointer to the
|
|||
|
beginning of the nth line following the current pointer
|
|||
|
position. A negative value moves the pointer backward n
|
|||
|
lines and positions it at the beginnning of the nth line
|
|||
|
preceding the current position. If n is zero, the
|
|||
|
pointer is moved to the beginning of the line on which it
|
|||
|
is currently positioned.
|
|||
|
|
|||
|
C Advance the pointer forward across one character.
|
|||
|
|
|||
|
nC Execute the C command n times, where n is a signed
|
|||
|
integer. A positive value of n moves the pointer forward
|
|||
|
across n characters. A negative value of n moves the
|
|||
|
pointer backward across n characters. If n is zero, the
|
|||
|
pointer position is not changed. Remember that there are
|
|||
|
two characters, <CR> and <LF>, at the end of each line in
|
|||
|
the buffer.
|
|||
|
|
|||
|
These commands may be used to move the buffer pointer across any
|
|||
|
number of lines or characters in either direction; however, they
|
|||
|
will not move the pointer across a page boundary. If a C command
|
|||
|
attempts to move the pointer backward beyond the beginning of the
|
|||
|
buffer or forward past the end of the buffer, an error message is
|
|||
|
printed and the command is ignored.
|
|||
|
|
|||
|
If an L command attempts to exceed the page boundaries in this
|
|||
|
manner, the pointer is positioned at the boundary which would
|
|||
|
have been exceeded. Thus, in a page of 2000 lines, the command
|
|||
|
"-4000L" would position the pointer before the first character in
|
|||
|
the buffer. The command "4000L" would position the pointer after
|
|||
|
the last character in the buffer. No error message is printed in
|
|||
|
either case.
|
|||
|
|
|||
|
Standard TECO PAGE 16
|
|||
|
Type Out Commands
|
|||
|
|
|||
|
|
|||
|
1.6 TYPE OUT COMMANDS
|
|||
|
|
|||
|
The following commands permit sections of the text in the buffer
|
|||
|
to be printed out on your terminal for examination. These
|
|||
|
commands do not move the buffer pointer.
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
T Type the contents of the text buffer from the current
|
|||
|
position of the pointer through and including the next
|
|||
|
line feed character.
|
|||
|
|
|||
|
nT Type n lines, where n is a signed integer. A positive
|
|||
|
value of n causes the n lines following the pointer to be
|
|||
|
typed. A negative value of n causes the n lines
|
|||
|
preceding the pointer to be typed. If n is zero, the
|
|||
|
contents of the buffer from the beginning of the line on
|
|||
|
which the pointer is located up to the pointer is typed.
|
|||
|
This is useful for verifying the location of the buffer
|
|||
|
pointer.
|
|||
|
|
|||
|
HT Type the entire contents of the text buffer.
|
|||
|
|
|||
|
V Type the current line. Equivalent to the sequence "0TT".
|
|||
|
|
|||
|
Standard TECO PAGE 17
|
|||
|
Type Out Commands
|
|||
|
|
|||
|
|
|||
|
1.6.1 Immediate Inspection Commands [not in TECO-10]
|
|||
|
|
|||
|
In addition, there are available as a convenience abbreviations
|
|||
|
of two frequently used type out commands. Each one consists of a
|
|||
|
single character, and must be the very first character typed
|
|||
|
after TECO prints its prompting asterisk. Each of these commands
|
|||
|
takes effect immediately; there is no need to follow any of
|
|||
|
these commands by any <DELIM> character. For this reason, these
|
|||
|
commands are known as "immediate" commands (see Chapter 4 for
|
|||
|
more information on immediate commands).
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
<LF> Immediately execute an LT command. This command is
|
|||
|
issued by typing the line feed key as the first keystroke
|
|||
|
after TECO's prompt. It causes TECO to move the pointer
|
|||
|
ahead one line and then type out the new line. On
|
|||
|
terminals without a line feed key, typing <CTRL/J> has
|
|||
|
the same effect. (See also the next command.)
|
|||
|
|
|||
|
<DELIM> Immediately execute an LT command. (Action identical to
|
|||
|
that of the command above.) This command is available
|
|||
|
when an ESCape surrogate is active, and causes TECO to
|
|||
|
move the pointer ahead one line and then type out the new
|
|||
|
line when a <DELIM> is the first thing typed after TECO's
|
|||
|
prompting asterisk.
|
|||
|
[RSTS/E only]
|
|||
|
|
|||
|
<BS> Immediately execute a -LT command. This command is
|
|||
|
issued by typing the backspace key as the first keystroke
|
|||
|
after TECO's prompt. It causes TECO to move the pointer
|
|||
|
back one line and then type the line just moved over on
|
|||
|
the terminal. On terminals without a backspace key,
|
|||
|
typing <CTRL/H> has the same effect.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
These commands are useful for "walking through" a file, examining
|
|||
|
and/or modifying lines one at a time.
|
|||
|
|
|||
|
Standard TECO PAGE 18
|
|||
|
Text Modification Commands
|
|||
|
|
|||
|
|
|||
|
1.7 TEXT MODIFICATION COMMANDS
|
|||
|
|
|||
|
You can insert or delete text from the buffer using the following
|
|||
|
commands:
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
Itext` Where "text" is a string of ASCII characters terminated
|
|||
|
by a <DELIM> character. The specified text is inserted
|
|||
|
into the buffer at the current position of the pointer.
|
|||
|
The pointer is positioned immediately after the last
|
|||
|
character of the insertion.
|
|||
|
|
|||
|
K Delete the contents of the text buffer from the current
|
|||
|
position of the pointer up to and including the next line
|
|||
|
feed character.
|
|||
|
|
|||
|
nK Execute the K command n times, where n is a signed
|
|||
|
integer. A positive value of n causes the n lines
|
|||
|
following the pointer to be deleted. A negative value of
|
|||
|
n causes the n lines preceding the pointer to be deleted.
|
|||
|
If n is zero, the contents of the buffer from the
|
|||
|
beginning of the line on which the pointer is located up
|
|||
|
to the pointer is deleted.
|
|||
|
|
|||
|
HK Delete the entire contents of the text buffer.
|
|||
|
|
|||
|
D Delete the character following the buffer pointer.
|
|||
|
|
|||
|
nD Execute the D command n times, where n is a signed
|
|||
|
integer. A positive value of n causes the n characters
|
|||
|
following the pointer to be deleted. A negative value of
|
|||
|
n causes the n characters preceding the pointer to be
|
|||
|
deleted. If n is zero, the command is ignored.
|
|||
|
|
|||
|
Like the L and C commands, the K and D commands may not execute
|
|||
|
across page boundaries. If a K command attempts to delete text
|
|||
|
up to and across the beginning or end of the buffer, text will be
|
|||
|
deleted only up to the buffer boundary and the pointer will be
|
|||
|
positioned at the boundary. No error message is printed. A D
|
|||
|
command attempting to delete text past the end or beginning of
|
|||
|
the text buffer will produce an error message and the command
|
|||
|
will be ignored.
|
|||
|
|
|||
|
Standard TECO PAGE 19
|
|||
|
Search Commands
|
|||
|
|
|||
|
|
|||
|
1.8 SEARCH COMMANDS
|
|||
|
|
|||
|
The following commands may be used to search the input file for a
|
|||
|
specified string of characters.
|
|||
|
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
Stext` Where "text" is a string of ASCII characters terminated
|
|||
|
by a <DELIM> character. This command searches the text
|
|||
|
buffer for the next occurrence of the specified character
|
|||
|
string following the current pointer position. If the
|
|||
|
string is found, the pointer is positioned after the last
|
|||
|
character on the string. If it is not found, the pointer
|
|||
|
is positioned immediately before the first character in
|
|||
|
the buffer and an error message is printed.
|
|||
|
|
|||
|
Ntext` Performs the same function as the S command except that
|
|||
|
the search is continued across page boundaries, if
|
|||
|
necessary, until the character string is found or the end
|
|||
|
of the input file is reached. If the end of the input
|
|||
|
file is reached, an error message is printed. On
|
|||
|
VAX/VMS, you can "back up" into the file and continue
|
|||
|
editing, although doing so uses TECO features beyond
|
|||
|
those introduced in this chapter. Using only basic
|
|||
|
features (or a TECO implementation other than VAX/VMS),
|
|||
|
you must close the output file and reopen it as an input
|
|||
|
file before you can edit the file further.
|
|||
|
|
|||
|
Both the S command and the N command begin searching for the
|
|||
|
specified character string at the current position of the
|
|||
|
pointer. Therefore, neither command will locate any occurrence
|
|||
|
of the character string which precedes the current pointer
|
|||
|
position, nor will it locate any character string which is split
|
|||
|
across a page boundary.
|
|||
|
|
|||
|
Both commands execute the search by attempting to match the
|
|||
|
command argument, character for character, with some portion of
|
|||
|
the buffer contents. If an N command reaches the end of the
|
|||
|
buffer without finding a match for its argument, it writes the
|
|||
|
contents of the buffer onto the output file, clears the buffer,
|
|||
|
reads the next page of the input file into the buffer, and
|
|||
|
continues the search.
|
|||
|
|
|||
|
Standard TECO PAGE 20
|
|||
|
Sample Editing Job
|
|||
|
|
|||
|
|
|||
|
1.9 SAMPLE EDITING JOB
|
|||
|
|
|||
|
The following sample editing job is included to help the new user
|
|||
|
to achieve a greater understanding of the basic TECO commands.
|
|||
|
The entire terminal output from the editing run is reproduced
|
|||
|
intact, with numbers added in the left margin referring to the
|
|||
|
explanatory paragraphs which follow.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
1< *EWDT1:FILE1.TXT``
|
|||
|
2< *HKIMR. JOHN P. JONES
|
|||
|
! COMPUTER ELECTRONICS CORPORATION
|
|||
|
! BOSTON, MASAASACHUSETTS
|
|||
|
!
|
|||
|
! DEAR MR. JONES:
|
|||
|
!
|
|||
|
! I WAS PLEASED TO RECEIVE YOUR REQUEST FOR INFORMATION
|
|||
|
! PERTAINING TO THE NEW TECO TEXT EDITING AND CORRECTING
|
|||
|
! PROGRAM.
|
|||
|
!
|
|||
|
! ENCLOSED IS A COPY OF THE TECO USERS'S GUIDE, WHICH
|
|||
|
! SHOULD ANSWER ALL OF YOUR QUESTIONS.
|
|||
|
!
|
|||
|
! SINCERELY,
|
|||
|
!
|
|||
|
!
|
|||
|
!
|
|||
|
!
|
|||
|
! ``
|
|||
|
3< *-20LSETTS`I 02150``
|
|||
|
! *STION`2C13DIREGARDING``
|
|||
|
4< *SGUIDE`-5DIMANUAL``
|
|||
|
! *SELY`0T``
|
|||
|
! SINCERELY*0KIVERY TRULY YOURS``
|
|||
|
! *HT``
|
|||
|
! MR. JOHN P. JONES
|
|||
|
! COMPUTER ELECTRONICS CORPORATION
|
|||
|
! BOSTON, MASSACHUSETTS 02150
|
|||
|
!
|
|||
|
! DEAR MR. JONES:
|
|||
|
!
|
|||
|
! I WAS PLEASED TO RECEIVE YOUR REQUEST FOR INFORMATION
|
|||
|
! REGARDING THE NEW TECO TEXT EDITING AND CORRECTING
|
|||
|
! PROGRAM.
|
|||
|
!
|
|||
|
! ENCLOSED IS A COPY OF THE TECO USER'S MANUAL, WHICH
|
|||
|
! SHOULD ANSWER ALL OF YOUR QUESTIONS.
|
|||
|
!
|
|||
|
! VERY TRULY YOURS,
|
|||
|
!
|
|||
|
!
|
|||
|
|
|||
|
Standard TECO PAGE 21
|
|||
|
Sample Editing Job
|
|||
|
|
|||
|
|
|||
|
!
|
|||
|
!
|
|||
|
!
|
|||
|
5< *EX``
|
|||
|
! (TECO is rerun, operating system dependent)
|
|||
|
! *ERDT1:FILE1.TXT`EWLP:``
|
|||
|
6< *Y5KIMR. JAMES B. SMITH
|
|||
|
! DATEK ASSOCIATES, INC.
|
|||
|
! 122 MAIN STREET WEST
|
|||
|
! AUSTIN, TEXAS
|
|||
|
!
|
|||
|
! DEAR MR. SMITH:
|
|||
|
! ``
|
|||
|
! *HT``
|
|||
|
! MR. JAMES B. SMITH
|
|||
|
! DATEK ASSOCIATES, INC.
|
|||
|
! 122 MAIN STREET WEST
|
|||
|
! AUSTIN, TEXAS
|
|||
|
!
|
|||
|
! DEAR MR. SMITH:
|
|||
|
!
|
|||
|
! I WAS PLEASED TO RECEIVE YOUR REQUEST FOR INFORMATION
|
|||
|
! REGARDING THE NEW TECO TEXT EDITING AND CORRECTING
|
|||
|
! PROGRAM.
|
|||
|
!
|
|||
|
! ENCLOSED IS A COPY OF THE TECO USER'S MANUAL, WHICH
|
|||
|
! SHOULD ANSWER ALL OF YOUR QUESTIONS.
|
|||
|
!
|
|||
|
! VERY TRULY YOURS,
|
|||
|
!
|
|||
|
!
|
|||
|
!
|
|||
|
!
|
|||
|
!
|
|||
|
! *EX``
|
|||
|
|
|||
|
|
|||
|
1) At this point, the user called TECO into memory. TECO
|
|||
|
responded by printing an asterisk at the left margin. The user
|
|||
|
then entered an EW command, opening an output file called
|
|||
|
"FILE1.TXT" on DT1. There is no input file. Upon receipt of the
|
|||
|
double <DELIM> (echoed as ``), TECO created the designated output
|
|||
|
file, then printed another asterisk at the left margin.
|
|||
|
|
|||
|
2) The user entered a command string consisting of two commands.
|
|||
|
The HK command cleared the text buffer (not really necessary,
|
|||
|
since it was already empty), and the I command inserted 18 lines
|
|||
|
of text into the buffer, including 8 blank lines. TECO executed
|
|||
|
these commands upon receipt of the second double <DELIM>. At
|
|||
|
this point, the buffer pointer was positioned at the end of the
|
|||
|
buffer, following the last line feed character in the text. Note
|
|||
|
that the user made an error while typing the word
|
|||
|
"MASSACHUSETTS". He typed "MASA", then realized his mistake and
|
|||
|
|
|||
|
Standard TECO PAGE 22
|
|||
|
Sample Editing Job
|
|||
|
|
|||
|
|
|||
|
struck the DELETE key once to delete the second "A". TECO echoed
|
|||
|
the deleted character. The user then typed the correct character
|
|||
|
and continued the insertion.
|
|||
|
|
|||
|
3) The user typed -20L to move the pointer to the beginning of
|
|||
|
the buffer and SETTS` to position the pointer immediately after
|
|||
|
the character string "ETTS" (which terminates the word
|
|||
|
"MASSACHUSETTS"). He then used an I command to insert one space
|
|||
|
and a five-digit zip code. A second S command positioned the
|
|||
|
pointer after the word "INFORMATION". The 2C command moved the
|
|||
|
pointer to the beginning of the next line (carriage return and
|
|||
|
line feed count two characters), and the user deleted the words
|
|||
|
"PERTAINING TO" and replaced them with the word "REGARDING".
|
|||
|
|
|||
|
4) The user continued editing by positioning the pointer after
|
|||
|
the word "GUIDE". He then deleted this word, and replaced it
|
|||
|
with the word "MANUAL". Finally, he searched for the word
|
|||
|
"SINCERELY", typed 0T to determine that the pointer was correctly
|
|||
|
positioned between the Y and the comma which follows it, and
|
|||
|
typed 0K to delete everything on the line except the comma. He
|
|||
|
then inserted "VERY TRULY YOURS" in place of the word
|
|||
|
"SINCERELY". An HT command caused the edited text to be printed
|
|||
|
at the terminal.
|
|||
|
|
|||
|
5) The command string EX`` caused the contents of the buffer to
|
|||
|
be written onto the output file and the output file to be closed.
|
|||
|
The user then reentered TECO and reopened the file "FILE1.TXT" as
|
|||
|
an input file and specified the line printer as an output file.
|
|||
|
|
|||
|
6) This command string reads the first (and only) page of
|
|||
|
"FILE1.TXT" into the buffer, deleted the first 5 lines, replaced
|
|||
|
them with a different address and salutation, then printed the
|
|||
|
contents of the buffer on the terminal for verification and
|
|||
|
finally printed the new version of the letter onto the line
|
|||
|
printer. Note that the previous version of the letter still
|
|||
|
resides in file "FILE1.TXT" on DT1.
|
|||
|
|
|||
|
Standard TECO PAGE 23
|
|||
|
Interlude
|
|||
|
|
|||
|
|
|||
|
INTERLUDE
|
|||
|
|
|||
|
The rest of this manual is a description of TECO in all its
|
|||
|
glory. TECO is a complex editor and has many features because it
|
|||
|
has been under development for a long time. (TECO is older than
|
|||
|
some of the readers of this manual!) Do not try to understand
|
|||
|
everything the first time through. If you find that what you are
|
|||
|
reading seems hopelessly obscure, or makes no sense whatsoever,
|
|||
|
skip to the next section and come back to it some time later. It
|
|||
|
will be a while before you need all of TECO's features.
|
|||
|
|
|||
|
This manual is meant to be a reference manual and not a tutorial.
|
|||
|
Readers who are first learning TECO may wish to consult the
|
|||
|
following document (available from Digital Equipment Corporation)
|
|||
|
for more basic material: DEC-10-UTECA-A-D INTRODUCTION TO TECO.
|
|||
|
|
|||
|
The commands described in this manual are those implemented in
|
|||
|
TECO-11 Version 40, TECO-8 Version 7, and TECO-10 Version 3.
|
|||
|
Some of the more obscure commands may not be present under some
|
|||
|
operating systems, in which case this is indicated by a note in
|
|||
|
the form [Not in TECO-x].
|
|||
|
|
|||
|
This manual also describes some (but not necessarily all) of the
|
|||
|
obscure commands that belong to one implementation of TECO but
|
|||
|
not to the other implementations. Such commands are flagged by a
|
|||
|
note of the form [TECO-x only]. These commands are not to be
|
|||
|
considered part of the so-called "Standard TECO" and should not
|
|||
|
be used in applications that may be run on multiple operating
|
|||
|
systems. Consult also the appendices for commands that are very
|
|||
|
operating system dependent.
|
|||
|
|
|||
|
Standard TECO PAGE 24
|
|||
|
Invoking TECO
|
|||
|
|
|||
|
|
|||
|
CHAPTER 2
|
|||
|
|
|||
|
|
|||
|
INVOKING TECO
|
|||
|
|
|||
|
|
|||
|
2.1 RUNNING TECO
|
|||
|
|
|||
|
To run TECO with no special options or defaults, use the same
|
|||
|
command on your operating system that you would use to run any
|
|||
|
other program. The command is system dependent but is usually
|
|||
|
something like
|
|||
|
|
|||
|
RUN TECO
|
|||
|
|
|||
|
Consult the appendix that describes your operating system's
|
|||
|
characteristics for details.
|
|||
|
|
|||
|
|
|||
|
2.2 CREATING A NEW FILE
|
|||
|
|
|||
|
As described in Chapter 1, most operating systems use the same
|
|||
|
command to invoke TECO for the purpose of creating a new file:
|
|||
|
|
|||
|
MAKE filespec
|
|||
|
|
|||
|
The "MAKE filespec" command takes as its single argument the file
|
|||
|
specification for the file to be created. This file
|
|||
|
specification must conform to the conventions used by your
|
|||
|
operating system. If a file by that name already exists, TECO
|
|||
|
will give you a warning message telling you that you are
|
|||
|
superseding an existing file.
|
|||
|
|
|||
|
The MAKE command invokes TECO and performs an effective
|
|||
|
EWfilespec`` command, as described in Chapter 1.
|
|||
|
|
|||
|
|
|||
|
2.3 EDITING AN EXISTING FILE
|
|||
|
|
|||
|
As Chapter 1 states, most operating systems use the same command
|
|||
|
to invoke TECO for the purpose of editing an existing file:
|
|||
|
|
|||
|
TECO filespec
|
|||
|
|
|||
|
The "TECO filespec" command takes as its argument the file
|
|||
|
specification for the file to be edited. The file will be opened
|
|||
|
for input and output, with back-up protection. That means that
|
|||
|
the system will save the original version of the source file (in
|
|||
|
case you 'blow' the edit). If your operating system supports
|
|||
|
file version numbers, a new version will be created. If your
|
|||
|
operating system does not support file version numbers, the
|
|||
|
original file will be preserved in a file with the same name but
|
|||
|
with a backup extension (.BAK).
|
|||
|
|
|||
|
Standard TECO PAGE 25
|
|||
|
Editing an Existing File
|
|||
|
|
|||
|
|
|||
|
The TECO command invokes TECO and performs an effective
|
|||
|
EBfilespec`Y`` command. Note that the first page of the file is
|
|||
|
brought into memory and that the text buffer pointer is
|
|||
|
positioned at the start of the file.
|
|||
|
|
|||
|
If, at any time during the edit, you discover that the edit is
|
|||
|
invalid, slowly (so TECO can respond to them) type enough
|
|||
|
<CTRL/C>s to get you back to the operating system. You will find
|
|||
|
that your original file has been preserved.
|
|||
|
|
|||
|
TECO remembers the filespec given in a MAKE or TECO command. If
|
|||
|
TECO is invoked with the command "TECO", with no filespec, it
|
|||
|
will open the file edited last (i.e., the remembered filespec).
|
|||
|
|
|||
|
|
|||
|
2.4 SWITCHES ON TECO and MAKE COMMANDS
|
|||
|
|
|||
|
The TECO and MAKE commands can take switches (qualifiers) of the
|
|||
|
form /SWITCH. These switches are described below.
|
|||
|
|
|||
|
|
|||
|
SWITCHES ON COMMAND LINES
|
|||
|
|
|||
|
System Switch Meaning
|
|||
|
|
|||
|
RSTS/E /SIZE:n start with nK word editing area
|
|||
|
/SIZE:+n start with nK additional words of
|
|||
|
editing area
|
|||
|
|
|||
|
RSTS/E
|
|||
|
RSX-11
|
|||
|
VAX/VMS /INSPECT Do not create an output file
|
|||
|
/FIND Initially position to the position
|
|||
|
marker left in the file by the VTEDIT
|
|||
|
macro and delete the marker.
|
|||
|
/NOCREATE Do not automatically create a new file
|
|||
|
if the file specified by the TECO
|
|||
|
command does not exist.
|
|||
|
/NOINI Do not use TECO.INI to perform
|
|||
|
initialization
|
|||
|
/NOMEMORY Do not remember the argument to the
|
|||
|
invocation command.
|
|||
|
/SCROLL Automatically enter split screen
|
|||
|
scrolling mode, using 1/4 of the
|
|||
|
screen's lines as the scrolling area
|
|||
|
(available on VT100 terminals only).
|
|||
|
/VTEDIT Load VTEDIT video terminal editor
|
|||
|
|
|||
|
The /SCROLL switch may take a value of the following form:
|
|||
|
|
|||
|
/SCROLL:n Enter split screen scrolling mode, using
|
|||
|
n lines for the scrolling area.
|
|||
|
|
|||
|
Standard TECO PAGE 26
|
|||
|
Switches on TECO and MAKE Commands
|
|||
|
|
|||
|
|
|||
|
The /VTEDIT switch may also take values (of the form :value).
|
|||
|
|
|||
|
/VTEDIT:HOLD Start up in hold screen mode
|
|||
|
/VTEDIT:SEEALL Start up in SEEALL mode
|
|||
|
|
|||
|
These values can be combined, viz.: /VTEDIT:HOLD:SEEALL.
|
|||
|
|
|||
|
|
|||
|
2.5 INVOKING A TECO PROGRAM
|
|||
|
|
|||
|
All operating systems except TOPS-10 and TOPS-20 use the same
|
|||
|
command to let you start up execution of a TECO program (macro).
|
|||
|
This is the MUNG command.
|
|||
|
|
|||
|
The MUNG command has the form
|
|||
|
|
|||
|
MUNG filespec
|
|||
|
|
|||
|
where filespec is the name of the TECO program that is to be run.
|
|||
|
If no file extension (file type) is specified, .TEC is assumed.
|
|||
|
This command executes the TECO code that appears within the
|
|||
|
specified file. It invokes TECO and performs an effective
|
|||
|
EIfilespec`` command (consult the appendices for operating-system
|
|||
|
dependent differences). The contents of the specified file
|
|||
|
should generally end with a double ESCAPE so that execution will
|
|||
|
start immediately.
|
|||
|
|
|||
|
Another form of this command is
|
|||
|
|
|||
|
MUNG filespec,data
|
|||
|
|
|||
|
where "data" is any string of ASCII characters to be passed to
|
|||
|
the TECO program. This version of the MUNG command invokes TECO
|
|||
|
and issues an effective
|
|||
|
|
|||
|
Idata`EIfilespec``
|
|||
|
|
|||
|
command. Under TECO-11, a space, tab, or a slash (/) may be used
|
|||
|
instead of the comma.
|
|||
|
|
|||
|
Standard TECO PAGE 27
|
|||
|
Invoking a TECO Program
|
|||
|
|
|||
|
|
|||
|
2.6 USER INITIALIZATION
|
|||
|
|
|||
|
You can specify initialization commands to TECO by creating a
|
|||
|
file called TECO.INI. If, upon start-up, TECO finds a file
|
|||
|
called TECO.INI in your area, TECO executes the commands in that
|
|||
|
file. You can use TECO.INI commands to set initial values of
|
|||
|
flags and to tailor TECO to your needs. You must, however, be
|
|||
|
very careful in constructing code for your TECO.INI file: an
|
|||
|
error in this code may keep TECO from running at all!
|
|||
|
|
|||
|
If you include unusual commands in your initialization file, you
|
|||
|
would be prudent to surround such commands with the ? command.
|
|||
|
This causes TECO to type the commands out when they are executed
|
|||
|
(see section 5.18.4). You should also print an informative
|
|||
|
message on the terminal reminding other users that this version
|
|||
|
of TECO has been customized.
|
|||
|
|
|||
|
Example 1:
|
|||
|
|
|||
|
?1ED?
|
|||
|
|
|||
|
The user initialization file sets the ED flag to 1 so that ^
|
|||
|
characters in search strings have their traditional meaning (do
|
|||
|
not convert the next character to a control character). The file
|
|||
|
also causes the command to be typed out when it is executed.
|
|||
|
|
|||
|
Example 2:
|
|||
|
|
|||
|
0,16ED ^A[Dot preserved on failing searches]^A 13^T 10^T
|
|||
|
|
|||
|
The user initialization file causes future search string failures
|
|||
|
to preserve the pointer position. It also prints a message
|
|||
|
informing all users of this feature.
|
|||
|
|
|||
|
Standard TECO PAGE 28
|
|||
|
User Initialization
|
|||
|
|
|||
|
|
|||
|
In TECO-11, the TECO.INI commands may return a value to the
|
|||
|
command processor. Such a value, if present, is interpreted as a
|
|||
|
set of bit encoded flags that control the startup processing.
|
|||
|
The following bits may be set:
|
|||
|
|
|||
|
Value&1 Automatically load the VTEDIT macro (as if
|
|||
|
the user had typed TECO/VTEDIT).
|
|||
|
|
|||
|
Value&4 Inhibit use of the memory file (as if the
|
|||
|
user had typed TECO/NOMEMORY).
|
|||
|
|
|||
|
Value&16 Automatically load VTEDIT and start it in
|
|||
|
SEEALL mode (as if the user had typed
|
|||
|
TECO/VTEDIT:SEEALL).
|
|||
|
|
|||
|
Value&32 Automatically load VTEDIT and start it in
|
|||
|
HOLDSCREEN mode (as if the user had typed
|
|||
|
TECO/VTEDIT:HOLD).
|
|||
|
|
|||
|
Value&128 Automatically enter split screen scrolling
|
|||
|
mode (as if the user had typed TECO/SCROLL).
|
|||
|
|
|||
|
Value&256 Inhibit automatic creation of the output file
|
|||
|
if the input file does not exist (as if the
|
|||
|
user had typed TECO/NOCREATE).
|
|||
|
|
|||
|
For additional information on initialization, consult the
|
|||
|
operating system specific appendices.
|
|||
|
|
|||
|
Standard TECO PAGE 29
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
CHAPTER 3
|
|||
|
|
|||
|
CONVENTIONS AND STRUCTURES
|
|||
|
|
|||
|
|
|||
|
3.1 TECO CHARACTER SET
|
|||
|
|
|||
|
TECO accepts the full 8-bit ASCII character set. (In other than
|
|||
|
TECO-11, characters typed at the console have their 8th bit
|
|||
|
trimmed off. If your terminal does not transmit or receive all
|
|||
|
of the ASCII codes, you can still insert the full character set
|
|||
|
into your TECO buffer, using special commands (see section 5.6).
|
|||
|
|
|||
|
For more information on TECO's handling of 8-bit characters
|
|||
|
(including on terminals capable of displaying only 7-bit data),
|
|||
|
see the description of the 4096 ET bit, in section 5.16.
|
|||
|
|
|||
|
When TECO is maintaining a window into the text buffer, a special
|
|||
|
facility (called "SEEALL" or "View All" mode) is available to
|
|||
|
explicitly show certain characters which normally do not print,
|
|||
|
such as <CR>, <FF>, and <TAB>. This mode is controlled by the
|
|||
|
3:W flag, which is described in section 5.17.
|
|||
|
|
|||
|
TECO command strings may be entered using upper case characters
|
|||
|
(as shown throughout this manual) or lower case characters. For
|
|||
|
example, the commands MQ, mQ, Mq, and mq are executed
|
|||
|
identically. A file containing upper and lower case text can be
|
|||
|
edited in the same way as a file containing upper case only,
|
|||
|
although this may be clumsy to do from an upper case only
|
|||
|
terminal. TECO can be set to convert lower case alphabetics to
|
|||
|
upper case as they are typed in; commands to enable or disable
|
|||
|
lower case type-in will be presented in section 5.16.
|
|||
|
|
|||
|
Control characters are generally echoed by TECO as a caret or
|
|||
|
up-arrow followed by the character. Some control characters,
|
|||
|
such as <CTRL/L> (form feed) and <CTRL/G> (bell) echo as the
|
|||
|
function they perform. In many cases, you can type a control
|
|||
|
character as a caret (up-arrow) followed by a character, and it
|
|||
|
will be treated as if it had been entered using the control key.
|
|||
|
|
|||
|
There are exceptions to the interchangeable use of the CONTROL
|
|||
|
key and the caret. When a control character is used as the
|
|||
|
delimiter of a text string (as explained in Section 3.2.2 below),
|
|||
|
it must be entered in its <CTRL/x> form. This form must also be
|
|||
|
used if the control character is the second character of a
|
|||
|
two-character command, or is being entered as an immmediate
|
|||
|
action command. Since certain control characters have special
|
|||
|
meaning in text arguments, some of them (such as <CTRL/N> and
|
|||
|
<CTRL/X>), must be entered into a text string using the CONTROL
|
|||
|
key and preceded by <CTRL/Q>, ^Q, <CTRL/R>, or ^R.
|
|||
|
|
|||
|
Standard TECO PAGE 30
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
3.2 TECO COMMAND FORMAT
|
|||
|
|
|||
|
Each TECO commands consists of one or two characters.
|
|||
|
|
|||
|
TECO commands may be strung together (concatenated) into a
|
|||
|
command string. If a command in the string returns numeric
|
|||
|
value(s), it or they will be passed to the following command.
|
|||
|
|
|||
|
|
|||
|
NOTE
|
|||
|
|
|||
|
Most commands which return a value are expressly designed
|
|||
|
for that purpose. A few commands (such as n%q and m,n:W,
|
|||
|
q.v.) can be used to cause an action, and also return a
|
|||
|
value. Good programming practice suggests following such
|
|||
|
a command with <DELIM> or caret-[ if the returned value
|
|||
|
is not intended to affect the following command.
|
|||
|
|
|||
|
|
|||
|
A TECO command may be preceded by one or two numeric arguments.
|
|||
|
Some TECO commands may be followed by a text argument. Many TECO
|
|||
|
commands can be modified by "@" (see section 3.2.2) and/or by ":"
|
|||
|
(see section 3.2.3).
|
|||
|
|
|||
|
When TECO commands are concatenated into a command string, no
|
|||
|
delimiter is necessary between commands except for one necessary
|
|||
|
to delimit a text argument or one as suggested in the note above.
|
|||
|
|
|||
|
TECO commands are accumulated into a command string as they are
|
|||
|
typed. The command string is executed when it is terminated by
|
|||
|
typing two consecutive <DELIM> characters. TECO then executes
|
|||
|
the commands in the order in which they appear in the command
|
|||
|
string, until the string is exhausted or an error occurrs. (Some
|
|||
|
TECO commands cause branching or looping, so altering the order
|
|||
|
of execution.)
|
|||
|
|
|||
|
TECO's <DELIM> character is (internally) the ESCape (octal 33).
|
|||
|
Because newer terminals use the ESCape character as part of
|
|||
|
control sequences (and some terminals no longer even possess an
|
|||
|
ESCape key), provision is made for you to designate a key on your
|
|||
|
terminal to cause an ESCape to be sent to TECO -- that is, to act
|
|||
|
as an ESCape surrogate. (See the EE flag and the 8192 ET bit,
|
|||
|
section 5.16.) Because the key you press to delimit text strings
|
|||
|
and TECO commands may be the ESCape key or may be the surrogate,
|
|||
|
this manual uses the indirect term <DELIM> to mean whichever one
|
|||
|
you are using. When an ESCape surrogate is active, the character
|
|||
|
you see is `. (When no surrogate is active, you see $.) This
|
|||
|
manual uses the ` character.
|
|||
|
|
|||
|
Standard TECO PAGE 31
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
3.2.1 Numeric Arguments
|
|||
|
|
|||
|
Most TECO commands may be preceded by a numeric argument. Some
|
|||
|
numeric arguments must be positive; others can be negative or
|
|||
|
zero. The maximum size of any numeric argument is restricted, as
|
|||
|
summarized in the following table:
|
|||
|
|
|||
|
Signed Unsigned
|
|||
|
System Min Max Max
|
|||
|
TECO-8 -2**12+1 +2**12-1 2**13-1
|
|||
|
TECO-10 -2**34 +2**34-1 2**35-1
|
|||
|
TECO-11 -2**15 +2**15-1 2**16-1
|
|||
|
|
|||
|
TABLE 3-1 Restrictions on numeric arguments
|
|||
|
|
|||
|
Exceeding these ranges of values can cause unpredictable results.
|
|||
|
So can using a negative argument with a command that takes only
|
|||
|
an unsigned argument.
|
|||
|
|
|||
|
Numeric arguments can be used in the following ways:
|
|||
|
|
|||
|
- Character commands such as J, C, R, and D take a single
|
|||
|
numeric argument which represents the number of
|
|||
|
characters that the command is to act on.
|
|||
|
|
|||
|
- Such commands as P, PW, and < perform an action that
|
|||
|
can be repeated. The numeric argument is the
|
|||
|
repetition count.
|
|||
|
|
|||
|
- Some commands, such as ED, ET, ^E, ^X, ES, EU, and EV,
|
|||
|
control the setting of variables called flags. When a
|
|||
|
numeric argument is specified, the value of that
|
|||
|
argument becomes the new value of the associated flag.
|
|||
|
When no numeric argument is specified, these command
|
|||
|
return the value of the associated flag.
|
|||
|
|
|||
|
- Line commands such as T, K, X, FB, and FC operate on
|
|||
|
lines. They take zero, one, or two numeric arguments.
|
|||
|
If one argument (n) is specified, it represents the
|
|||
|
number of lines over which the command is to have
|
|||
|
effect, beginning at the current buffer pointer
|
|||
|
position. A positive (non-zero) n affects a text
|
|||
|
running from the current pointer position to the nth
|
|||
|
following line delimiter. A negative n affects a text
|
|||
|
running from the pointer back to the beginning of the
|
|||
|
line containing the nth previous line delimiter. When
|
|||
|
n is zero, the affected text runs from the beginning of
|
|||
|
the current line to the current pointer position. When
|
|||
|
n is omitted, n = 1 is assumed.
|
|||
|
|
|||
|
When a line command contains two numeric arguments
|
|||
|
(m,n), these represent the pointer positions between
|
|||
|
which text is affected. Unless the description of the
|
|||
|
|
|||
|
Standard TECO PAGE 32
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
command says the order of these two arguments is
|
|||
|
important, they may be entered in either order.
|
|||
|
|
|||
|
When a command that normally takes an argument is specified with
|
|||
|
no argument, TECO executes the command in the most common or most
|
|||
|
useful way, as shown in the following table:
|
|||
|
|
|||
|
Command Default Argument Default Action
|
|||
|
|
|||
|
C 1 Advance 1 character
|
|||
|
R 1 Back over 1 character
|
|||
|
L 1 Advance 1 line
|
|||
|
J 0 Jump to start of buffer
|
|||
|
V 1 View 1 line
|
|||
|
D 1 Delete 1 character
|
|||
|
K 1 Kill 1 line
|
|||
|
S, N, etc. 1 Search for first occurrence
|
|||
|
% 1 Increment Q-register by 1
|
|||
|
X 1 Extract one line
|
|||
|
|
|||
|
Table 3-2 Default Arguments
|
|||
|
|
|||
|
These default arguments reduce the number of keystrokes needed
|
|||
|
for common TECO actions.
|
|||
|
|
|||
|
|
|||
|
3.2.2 Text Arguments
|
|||
|
|
|||
|
Many TECO commands take a text (character string) argument. The
|
|||
|
string is placed immediately after the command and consists of a
|
|||
|
sequence of ASCII characters terminated by a <DELIM> character
|
|||
|
(or in the case of ! and ^A commands, by the command character).
|
|||
|
The string of ASCII characters may not include a <DELIM>, since
|
|||
|
this would terminate the string prematurely, but may include any
|
|||
|
other character. (Some characters may be difficult to enter from
|
|||
|
a terminal because they are TECO immediate action commands or
|
|||
|
because they have been filtered out by the operating system).
|
|||
|
|
|||
|
Examples of text arguments:
|
|||
|
|
|||
|
Sabc` Search for the string "abc"
|
|||
|
|
|||
|
^UAHELLO` Insert the text "HELLO" into
|
|||
|
Q-register A
|
|||
|
|
|||
|
OBEGIN` Branch to the tag specified by
|
|||
|
the string "BEGIN"
|
|||
|
|
|||
|
Some TECO commands require two text arguments. Each argument
|
|||
|
must be followed by a <DELIM> character, as follows:
|
|||
|
|
|||
|
FSabc`def` Replace string "abc" by "def"
|
|||
|
|
|||
|
Standard TECO PAGE 33
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
You can include a <DELIM> character in a text string by using
|
|||
|
another format of text argument. In this alternate form, the
|
|||
|
string is delimited on both sides by any ASCII code that does not
|
|||
|
otherwise appear in the string. You signal that this format is
|
|||
|
being used by inserting an @ character before the command, as
|
|||
|
follows:
|
|||
|
|
|||
|
@ER5TEST.FOR5 Open the file "TEST.FOR" for
|
|||
|
input. The delimiter used is
|
|||
|
"5"
|
|||
|
|
|||
|
@^A+Hello out there!+ Type the message "Hello out
|
|||
|
there!" on the terminal. The
|
|||
|
delimiter is "+"
|
|||
|
|
|||
|
Unpredictable results will occur if another TECO command
|
|||
|
intervenes between an @ sign and the command that it is supposed
|
|||
|
to affect. Note that a control character used as a delimiter
|
|||
|
must be entered as <CTRL/x> (that is, in its single-keystroke
|
|||
|
form).
|
|||
|
|
|||
|
|
|||
|
|
|||
|
3.2.3 Colon Modifiers
|
|||
|
|
|||
|
The colon (:) command modifies the action of the next command.
|
|||
|
In some cases, it will cause the next command to return a value
|
|||
|
indicating whether it has failed or succeeded. A zero (0)
|
|||
|
indicates that the command has failed, while a -1 indicates that
|
|||
|
it has succeeded. The colon modifier is used this way with such
|
|||
|
commands as :ER, :EB, :EN, :S, :N, :FS, :FN, :FB, and :FC. If
|
|||
|
the next sequential command requires a positive argument, the -1
|
|||
|
is interpreted as the largest possible positive number. In other
|
|||
|
cases, such as :Gq and :=, the colon modifier changes the meaning
|
|||
|
of the command. Unpredictable results may occur if you place a
|
|||
|
colon directly before a TECO command that does not normally
|
|||
|
accept a colon modifier.
|
|||
|
|
|||
|
If both the : and the @ (string delimiter) are used with the
|
|||
|
same command, they may be placed in either order.
|
|||
|
|
|||
|
Standard TECO PAGE 34
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
3.3 DATA STRUCTURES
|
|||
|
|
|||
|
A good way to begin the study of a programming language is to
|
|||
|
forget the commands, for the moment, and concentrate instead on
|
|||
|
the data structures. This section follows that approach,
|
|||
|
describing both the values on which TECO operates and the buffers
|
|||
|
and registers in which these values are stored.
|
|||
|
|
|||
|
TECO manipulates two types of data, namely,
|
|||
|
|
|||
|
o The character string: a sequence of zero or more ASCII
|
|||
|
characters, and
|
|||
|
|
|||
|
o The integer: a numeric value that may be signed or
|
|||
|
unsigned.
|
|||
|
|
|||
|
|
|||
|
The text that TECO edits is, of course, a character string. Less
|
|||
|
obviously, the command string by which the user controls TECO is
|
|||
|
also a character string. The counters and indices for character
|
|||
|
string manipulation, and the repetition counts for loops are
|
|||
|
integers.
|
|||
|
|
|||
|
Character strings and integers have distinct internal
|
|||
|
representation and this is reflected in the design of the TECO
|
|||
|
commands. Commands designed for character strings do not work on
|
|||
|
integers and vice versa.
|
|||
|
|
|||
|
The data structures described in this section are frequently
|
|||
|
applied to character strings. Structure is never "built into"
|
|||
|
the data, but rather is attributed to the data by particular
|
|||
|
commands and conventions. Thus "lines" of characters are
|
|||
|
recognized by line manipulation commands, but not by character
|
|||
|
manipulation commands, which view an end-of-line character as
|
|||
|
just another ASCII code.
|
|||
|
|
|||
|
The following are definitions for the line and the page in TECO:
|
|||
|
|
|||
|
o Any character string can be divided into TECO lines by
|
|||
|
considering the line to be ended by either
|
|||
|
|
|||
|
a line feed (octal 12)
|
|||
|
a form feed (octal 14)
|
|||
|
a vertical tab (octal 13) or
|
|||
|
the end of the given character string
|
|||
|
|
|||
|
o Any character string can be divided into TECO pages by
|
|||
|
considering the page to be ended by either
|
|||
|
|
|||
|
a form feed (octal 14) or
|
|||
|
the end of the given character string
|
|||
|
|
|||
|
Standard TECO PAGE 35
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
These data structures are used to achieve two quite separate
|
|||
|
results: the formatting of type out and the logical division of
|
|||
|
data.
|
|||
|
|
|||
|
|
|||
|
3.3.1 Text Buffer
|
|||
|
|
|||
|
The main storage of TECO is the text buffer. The text buffer
|
|||
|
stores a single character string that TECO edits. A text buffer
|
|||
|
pointer is used to address text in the buffer; it is moved about
|
|||
|
by many TECO commands. The text buffer pointer never points to
|
|||
|
characters in the buffer; it is always pointing at pointer
|
|||
|
positions (between characters). The available pointer positions
|
|||
|
in the text buffer are sequentially numbered beginning with 0.
|
|||
|
Pointer position 0 is the position at the start of the buffer,
|
|||
|
just to the left of the first character. Pointer position 1 is
|
|||
|
the next position, just to the right of the first character, etc.
|
|||
|
As an example, suppose the text buffer contains the string
|
|||
|
FOOBAR. Then seven text buffer pointer positions are determined
|
|||
|
as shown by the arrows in the following figure:
|
|||
|
|
|||
|
F O O B A R
|
|||
|
| | | | | | |
|
|||
|
0 1 2 3 4 5 6
|
|||
|
|
|||
|
|
|||
|
Note that there are 6 characters in the buffer and that the
|
|||
|
highest numbered pointer position is 6. The pointer position
|
|||
|
number is equal to the number of characters preceding that
|
|||
|
position.
|
|||
|
|
|||
|
Useful definitions of "current" objects are made with respect to
|
|||
|
the text buffer pointer as follows:
|
|||
|
|
|||
|
1. The current character of the text buffer is the
|
|||
|
character just to the right of the pointer. If the
|
|||
|
pointer is at the end of the text buffer, there is no
|
|||
|
character to the right of the buffer pointer, and the
|
|||
|
current character does not exist.
|
|||
|
|
|||
|
2. The current line of the text buffer is the TECO line
|
|||
|
that contains the current character. In the special
|
|||
|
case that the pointer is at the end of the buffer, the
|
|||
|
current line is everything back to (but not including)
|
|||
|
the last end-of-line character.
|
|||
|
|
|||
|
3. The current page of the text buffer is the TECO page
|
|||
|
that contains the current character. In the special
|
|||
|
case that the pointer is at the end of the buffer, the
|
|||
|
current page is everything back to (but not including)
|
|||
|
the last form feed character (or the beginning of the
|
|||
|
buffer).
|
|||
|
|
|||
|
Standard TECO PAGE 36
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
When the text buffer pointer is at the end of the text buffer and
|
|||
|
the last character of the buffer is an end-of-line character,
|
|||
|
then the current line is an empty string according to the
|
|||
|
definition just given. In this case, TECO performs the required
|
|||
|
operation on this empty string. For example, if the pointer is
|
|||
|
at the end of the buffer and TECO is commanded to kill (delete)
|
|||
|
the next 3 lines, then the empty string is killed 3 times.
|
|||
|
Similarly, if the pointer is at the end of the buffer and TECO is
|
|||
|
commanded to advance the pointer 5 lines, the pointer will remain
|
|||
|
at the end of the buffer. No error message will be given. In a
|
|||
|
like fashion, if the pointer is at the end of the first line of
|
|||
|
the buffer, and TECO is instructed to extract the previous 4
|
|||
|
lines (into a Q-register), then only the first line is extracted
|
|||
|
since it is presumed to be preceded by 3 empty lines.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
3.3.2 Q-registers
|
|||
|
|
|||
|
TECO provides data storage registers, called Q-registers, which
|
|||
|
may be used to store single integers and/or ASCII character
|
|||
|
strings. Each Q-register is divided into two storage areas. In
|
|||
|
its numeric storage area, each Q-register can store one signed
|
|||
|
integer. In its text storage area, each Q-register can store an
|
|||
|
ASCII character string (which can be any text, including the
|
|||
|
important case of a TECO command string).
|
|||
|
|
|||
|
There are global Q-registers and (in TECO-11) local Q-registers.
|
|||
|
|
|||
|
In every TECO, there are 36 global Q-registers, each of which has
|
|||
|
a one-character name: A through Z and 0 through 9. The global
|
|||
|
Q-registers are available to all macro levels, including
|
|||
|
"outside" macros altogether (that is, at prompt level).
|
|||
|
|
|||
|
In TECO-11, there are additionally 36 local Q-registers, each of
|
|||
|
which has a two-character name: .A through .Z and .0 through .9.
|
|||
|
Effectively, there is a complete and unique set of local
|
|||
|
Q-registers available to each and every macro level, including
|
|||
|
prompt level. TECO automatically saves and restores a given
|
|||
|
macro level's local Q-registers around execution of a nested
|
|||
|
(lower level) macro. When a macro is invoked via an Mq command
|
|||
|
(where the command is not colon-modified, and q is a global
|
|||
|
Q-register), the current set of local Q-registers is saved and a
|
|||
|
new set of local Q-registers created. When the macro exits, its
|
|||
|
local Q-registers are destroyed and those of the calling macro
|
|||
|
level are restored. (If a fatal error occurs and TECO goes back
|
|||
|
to prompt level, local Q-registers from all macro levels are
|
|||
|
destroyed and prompt level's set is restored.)
|
|||
|
|
|||
|
(A new set of local Q-registers is not created when the command
|
|||
|
is colon-modified, as in :MA, or when the invoked macro itself
|
|||
|
resides in a local Q-register, as in M.A -- see Table 5-9C.)
|
|||
|
|
|||
|
Standard TECO PAGE 37
|
|||
|
Conventions and Structures
|
|||
|
|
|||
|
|
|||
|
A local Q-register name can be used in any command that takes a
|
|||
|
Q-register name.
|
|||
|
|
|||
|
Various TECO commands allow the storing and retrieving of numeric
|
|||
|
values from the numeric storage areas of the Q-registers. Other
|
|||
|
TECO commands allow the storage and retrieval of strings from the
|
|||
|
text storage areas of the Q-registers.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
3.3.3 Q-register Push-down List [not in TECO-8]
|
|||
|
|
|||
|
The Q-register pushdown list is a stack that permits the numeric
|
|||
|
and text storage areas of Q-registers to be saved (the [ command)
|
|||
|
and restored (the ] command). The command sequence [A ]B
|
|||
|
replicates the text string and numeric value from Q-register A
|
|||
|
into Q-register B. (Note that in TECO-11, macros can be written
|
|||
|
to use local Q-registers, avoiding the need to save and restore
|
|||
|
Q-registers via the pushdown list.)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
3.3.4 Numeric Values and Flags
|
|||
|
|
|||
|
TECO has many special numeric values and flags which are
|
|||
|
accessible through TECO commands. Some of these values, such as
|
|||
|
the text buffer pointer, reflect the state of TECO. Others
|
|||
|
control TECO's behavior in various ways.
|
|||
|
|
|||
|
Standard TECO PAGE 38
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
CHAPTER 4
|
|||
|
|
|||
|
COMMAND STRING EDITING
|
|||
|
|
|||
|
|
|||
|
4.1 Immediate Action Editing Characters
|
|||
|
|
|||
|
While you are typing command strings at a terminal, TECO
|
|||
|
considers certain ASCII characters to have special meaning. Most
|
|||
|
of the special characters cause TECO to perform a specified
|
|||
|
function immediately, without waiting for the double <DELIM>
|
|||
|
which normally be required to terminate a command string.
|
|||
|
Immediate action editing characters may be entered at any point
|
|||
|
in a command string - even in the middle of a command or text
|
|||
|
argument.
|
|||
|
|
|||
|
Many immediate action editing characters, such as <DELETE> (which
|
|||
|
deletes the immediately preceding character), cannot be used as
|
|||
|
regular TECO commands. For instance, if you enter a <DELETE>
|
|||
|
into a command string which is to be later executed as a macro,
|
|||
|
the <DELETE> will not delete a character as part the execution of
|
|||
|
the macro.
|
|||
|
|
|||
|
Some characters, like <CTRL/U>, are both regular TECO commands
|
|||
|
and immediate action commands. The command string ^Uqtext`
|
|||
|
enters the specified text into Q-register q. However, <CTRL/U>
|
|||
|
typed while entering a command string is an immediate action
|
|||
|
editing character which deletes the current line. Thus you
|
|||
|
cannot type a <CTRL/U> (or any similar sequence) directly into
|
|||
|
TECO as part of a command string. Nevertheless, <CTRL/U> is
|
|||
|
still a valid TECO command; should TECO encounter it in a macro
|
|||
|
or indirect file, it will have its regular TECO effect
|
|||
|
(^Uqtext`).
|
|||
|
|
|||
|
Control characters used as immediate action editing characters
|
|||
|
must be entered using the CONTROL key; they will not be
|
|||
|
recognized if entered in their caret or up-arrow form.
|
|||
|
|
|||
|
Table 4-1 lists the immediate action editing characters and
|
|||
|
explains their functions.
|
|||
|
|
|||
|
Standard TECO PAGE 39
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
TABLE 4-1: IMMEDIATE ACTION EDITING CHARACTERS
|
|||
|
|
|||
|
These characters take immediate effect and are used to edit a
|
|||
|
command string as it is being entered:
|
|||
|
|
|||
|
CHARACTER EXPLANATION
|
|||
|
|
|||
|
<DELIM><DELIM>
|
|||
|
The double <DELIM> character sequence tells TECO
|
|||
|
to begin execution of the command string just
|
|||
|
typed in. It inserts two <ESCAPE>s into the
|
|||
|
command string. (<DELIM> may be generated by
|
|||
|
pressing a key designated by the user as an
|
|||
|
"ESCape surrogate" or by pressing an actual ESCape
|
|||
|
key. In the former case, `` is echoed; if no
|
|||
|
ESCape surrogate has been designated, $$ is
|
|||
|
echoed. See the EE flag and the 8192 ET bit,
|
|||
|
section 5.16, for more information.)
|
|||
|
|
|||
|
The two <DELIM>s must be typed successively. If
|
|||
|
any other character is typed in between the two
|
|||
|
<DELIM>s (even if subsequently DELETEd), then the
|
|||
|
two <DELIM>s might be treated simply as two
|
|||
|
<DELIM>s to be entered into the command string
|
|||
|
rather than as an immediate action command.
|
|||
|
|
|||
|
If you need to enter two <DELIM>s into a command
|
|||
|
line, as in the case where you want to use the
|
|||
|
FSstring`` command to delete a string, you can
|
|||
|
keep TECO from recognizing `` as an immediate
|
|||
|
action command. Type
|
|||
|
<DELIM><SPACE><DELETE><DELIM> and then continue
|
|||
|
entering the remainder of your command string.
|
|||
|
|
|||
|
A single <DELIM> character can also be an
|
|||
|
immediate action command (when typed immediately
|
|||
|
after TECO's prompting asterisk, see section 4.2).
|
|||
|
Elsewhere, a single <DELIM> performs no immediate
|
|||
|
action.
|
|||
|
|
|||
|
<DELETE> Typing a DELETE character (DEL or RUBOUT on some
|
|||
|
terminals) deletes the last character typed.
|
|||
|
DELETE can be typed repeatedly to erase multiple
|
|||
|
characters. TECO echoes the deleted character
|
|||
|
whenever a DELETE is typed, indicating to you that
|
|||
|
the character has been rubbed out. If you are
|
|||
|
doing your editing on a scope terminal, then the
|
|||
|
action of this key is different: the character
|
|||
|
that has been rubbed out will disappear from the
|
|||
|
screen of your editing terminal and the cursor
|
|||
|
will be moved back one position.
|
|||
|
|
|||
|
If you delete a line feed, form feed, or vertical
|
|||
|
|
|||
|
Standard TECO PAGE 40
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
tab, the cursor will move up the screen and
|
|||
|
position itself at the end of the text that
|
|||
|
immediately preceded the line feed, form feed, or
|
|||
|
vertical tab.
|
|||
|
|
|||
|
<CTRL/C> <CTRL/C> echoes as ^C (Caret-C) and aborts the
|
|||
|
entering of the command string. The exact action
|
|||
|
of the <CTRL/C> key depends on the operating
|
|||
|
system being used (See appendices).
|
|||
|
|
|||
|
<CTRL/U> <CTRL/U> causes the current line of the current
|
|||
|
command line to be deleted. TECO echoes the
|
|||
|
character as ^U followed by <CR><LF> and an
|
|||
|
asterisk prompt. If you are using a scope
|
|||
|
terminal, the visible action of typing this key is
|
|||
|
different. The current line physically disappears
|
|||
|
from the screen and the cursor is positioned back
|
|||
|
at the beginning of the line.
|
|||
|
|
|||
|
<CTRL/G><CTRL/G>
|
|||
|
Typing two consecutive <CTRL/G> characters causes
|
|||
|
all commands which have been entered but not
|
|||
|
executed to be erased. (If the terminal has a
|
|||
|
bell, it will ring.) This command is used to erase
|
|||
|
an entire command string. A single <CTRL/G>
|
|||
|
character is not a special character.
|
|||
|
|
|||
|
<CTRL/G><space>
|
|||
|
<CTRL/G> followed by a space causes the line
|
|||
|
currently being entered into the command string to
|
|||
|
be retyped.
|
|||
|
|
|||
|
<CTRL/G>* <CTRL/G> followed by an asterisk causes all the
|
|||
|
lines typed by the user from the last TECO prompt
|
|||
|
(the asterisk) to be retyped.
|
|||
|
|
|||
|
<CR> Typing a carriage return enters a carriage return
|
|||
|
followed by a line feed into the command string.
|
|||
|
To enter a carriage return without a line feed,
|
|||
|
type <CR><DELETE>.
|
|||
|
|
|||
|
<CTRL/Z><CTRL/Z><CTRL/Z>
|
|||
|
RSX-11 TECO uses the triple <CTRL/Z> command as an
|
|||
|
immediate action command. See the appropriate
|
|||
|
appendix for more details.
|
|||
|
|
|||
|
The <CTRL/Z> character is used as an end-of-file terminator in
|
|||
|
some contexts on some operating systems. While its presence is
|
|||
|
usually harmless in disk files, it may cause premature end of
|
|||
|
file if the file is copied to other media (e.g., paper tape).
|
|||
|
|
|||
|
Standard TECO PAGE 41
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
4.2 Immediate Action Commands
|
|||
|
|
|||
|
TABLE 4-2: IMMEDIATE ACTION COMMANDS
|
|||
|
|
|||
|
The following commands take effect if (and only if) they are
|
|||
|
typed as the very first keystroke(s) after TECO issues its
|
|||
|
asterisk prompt.
|
|||
|
|
|||
|
The <LF>, <DELIM>, and <BS> commands are also described in
|
|||
|
Chapter 1, where they are introduced as "immediate inspection
|
|||
|
commands".
|
|||
|
|
|||
|
CHARACTER EXPLANATION
|
|||
|
|
|||
|
? If the previous command aborted because of an
|
|||
|
error, this immediate action command causes TECO
|
|||
|
to print the erroneous command string from the
|
|||
|
beginning of the current macro level up to and
|
|||
|
including the character that caused the error.
|
|||
|
|
|||
|
/ If TECO has just printed an error message, type
|
|||
|
this immediate action command to receive a more
|
|||
|
detailed explanation of the error. (On VAX/VMS, a
|
|||
|
HELP command is also available. See section
|
|||
|
G.13.)
|
|||
|
[In TECO-11, implemented only on VAX/VMS]
|
|||
|
|
|||
|
<LF> Typing this immediate action command, line feed,
|
|||
|
as the first keystroke after TECO's prompt causes
|
|||
|
TECO to immediately execute an LT command. This
|
|||
|
aid lets you "walk through" a file on a non-scope
|
|||
|
terminal. (If the EV flag is non-zero, then the T
|
|||
|
portion of this command is redundant and therefore
|
|||
|
is not performed.) If you are already positioned
|
|||
|
at the end of the text buffer, TECO-11 will not
|
|||
|
type out anything.
|
|||
|
[Not in TECO-10]
|
|||
|
|
|||
|
<DELIM> Typing this immediate action command, <DELIM>, is
|
|||
|
synonymous with typing the <LF> immediate action
|
|||
|
command (described above). This command is
|
|||
|
available on TECOs offering the ESCAPE surrogate.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
<BS> Typing this immediate action command, backspace,
|
|||
|
(as the first keystroke after TECO's prompt)
|
|||
|
causes TECO to immediately execute a -LT command.
|
|||
|
(If the EV flag is non-zero, then the T portion of
|
|||
|
this command is redundant and therefore is not
|
|||
|
performed.)
|
|||
|
[Not in TECO-10]
|
|||
|
|
|||
|
^W Typing this immediate action command, <CTRL/W>, as
|
|||
|
|
|||
|
Standard TECO PAGE 42
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
the first keystroke after TECO's prompt when
|
|||
|
split-screen scrolling is active causes TECO to
|
|||
|
re-paint the buffer display portion of the screen.
|
|||
|
(Split-screen scrolling is active when 7:W is
|
|||
|
non-zero.) This command is useful if the display
|
|||
|
has been "confused" by characters from a broadcast
|
|||
|
message or type-ahead. It is also useful in
|
|||
|
conjunction with ED's 128 bit (which inhibits all
|
|||
|
automatic scroll display updating).
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
*q When an asterisk followed immediately by a
|
|||
|
Q-register name (any alphanumeric character, here
|
|||
|
represented by q) is the first keystroke after
|
|||
|
TECO's prompt, TECO places the previous command
|
|||
|
string into Q-register q. [In TECO-8, only the *Z
|
|||
|
command is permitted, and TECO will automatically
|
|||
|
type the Z.] Note that since *q is itself an
|
|||
|
immediate action command, it may not be edited
|
|||
|
with other immediate action commands. In other
|
|||
|
words, you can't use DELETE to delete an
|
|||
|
incorrectly typed *.
|
|||
|
|
|||
|
[In TECO-10, *q must be followed by
|
|||
|
<DELIM><DELIM>.]
|
|||
|
|
|||
|
Standard TECO PAGE 43
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
4.3 Introduction to Macros
|
|||
|
|
|||
|
One of TECO's powerful features is the ability to execute ASCII
|
|||
|
text stored in a Q-register as a command string. This is called
|
|||
|
the "macro" facility, and a command string so stored and executed
|
|||
|
is called a "macro".
|
|||
|
|
|||
|
A Q-register may be loaded with a macro by any of several means:
|
|||
|
directly from the console (via the ^Uq command), by extraction
|
|||
|
from the text buffer (via the X command), or by these or other
|
|||
|
Q-register loading commands contained in an indirect file or even
|
|||
|
in another macro.
|
|||
|
|
|||
|
Particularly handy is the "*" immediate action command, discussed
|
|||
|
in a preceding section. When you type this command as the first
|
|||
|
character following TECO's asterisk prompt, whatever immediately
|
|||
|
preceding command you just typed at the console is saved in a
|
|||
|
Q-register. You can then use that command again (and repeatedly)
|
|||
|
by using the Mq command.
|
|||
|
|
|||
|
You invoke a macro by using the Mq command, where "q" is the name
|
|||
|
of the Q-register in which the macro text has been stored.
|
|||
|
|
|||
|
A related facility is that of immediate ESCAPE-sequence commands,
|
|||
|
which is discussed in the following section.
|
|||
|
|
|||
|
Standard TECO PAGE 44
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
4.4 Immediate ESCAPE-Sequence Commands [TECO-11 only]
|
|||
|
|
|||
|
Certain keys on many newer terminals generate ESCape sequences.
|
|||
|
TECO provides a facility by which you can cause the pressing of
|
|||
|
one of these keys at the prompting asterisk to be interpreted as
|
|||
|
an immediate command. When this facility is enabled, a key such
|
|||
|
as one of the cursor control keys can cause TECO to immediately
|
|||
|
execute commands (previously stored as a macro). The single
|
|||
|
keystroke suffices; no <DELIM><DELIM> is needed.
|
|||
|
|
|||
|
The 32 bit in the ED flag enables immedate ESCape-sequence
|
|||
|
commands. When ED's 32 bit is non-zero, and the first character
|
|||
|
TECO receives after its * prompt is ESCape, TECO will
|
|||
|
automatically read further characters and attempt to decode an
|
|||
|
ESCape sequence. The decoded ESCape sequence is resolved into a
|
|||
|
pair of numeric values, which are then passed to the macro
|
|||
|
residing in global Q-register A.
|
|||
|
|
|||
|
The two numeric values are a type code and a value code. They
|
|||
|
are passed to the macro in QA by an effective <type>,<value>MA``.
|
|||
|
The macro in QA can retrieve them by code such as:
|
|||
|
UA ! Save the <value> code in QA !
|
|||
|
@O!T0,T1,T2,T3! ! Dispatch on <type> code !
|
|||
|
!T0! ! Type 0 codes come here !
|
|||
|
QA@O!V0,V1,V2...
|
|||
|
|
|||
|
The <type> and <value> codes are as follows.
|
|||
|
|
|||
|
Type 0 - ESCape followed by a control character
|
|||
|
The <value> code is the control character's code (0 - 31.)
|
|||
|
|
|||
|
Type 1 - ESCape followed by a letter (e.g., ESC A), -or-
|
|||
|
ESCape followed by [ then a letter (e.g., ESC [ A), -or-
|
|||
|
CSI followed by a letter (e.g., CSI A), -or-
|
|||
|
ESCape, O, then an uppercase letter (e.g., ESC O A)
|
|||
|
The <value> code is the letter's ASCII value,
|
|||
|
trimmed to 5 bits (that is, a value of 0 through 31)
|
|||
|
Common keys of <type> 1 are:
|
|||
|
Up arrow <type> 1 <value> 1
|
|||
|
Down arrow <type> 1 <value> 2
|
|||
|
Left arrow <type> 1 <value> 4
|
|||
|
Right arrow <type> 1 <value> 3
|
|||
|
PF1 <type> 1 <value> 16
|
|||
|
PF2 <type> 1 <value> 17
|
|||
|
PF3 <type> 1 <value> 18
|
|||
|
PF4 <type> 1 <value> 19
|
|||
|
ENTER <type> 1 <value> 13
|
|||
|
|
|||
|
Standard TECO PAGE 45
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
Type 2 - ESCape followed by ? then a letter (e.g., ESC ? p), -or-
|
|||
|
ESCape, O, then an lowercase letter (e.g., ESC O p)
|
|||
|
The <value> code is the letter's ASCII value,
|
|||
|
trimmed to 5 bits (that is, a value of 0 through 31)
|
|||
|
Common keys of <type> 2 are:
|
|||
|
Keypad , <type> 2 <value> 12
|
|||
|
Keypad - <type> 2 <value> 13
|
|||
|
Keypad . <type> 2 <value> 14
|
|||
|
Keypad 0 <type> 2 <value> 16
|
|||
|
Keypad 1 <type> 2 <value> 17
|
|||
|
Keypad 2 <type> 2 <value> 18
|
|||
|
Keypad 3 <type> 2 <value> 19
|
|||
|
Keypad 4 <type> 2 <value> 20
|
|||
|
Keypad 5 <type> 2 <value> 21
|
|||
|
Keypad 6 <type> 2 <value> 22
|
|||
|
Keypad 7 <type> 2 <value> 23
|
|||
|
Keypad 8 <type> 2 <value> 24
|
|||
|
Keypad 9 <type> 2 <value> 25
|
|||
|
|
|||
|
Type 3 - ESCape followed by [ then a digit string then ~ -or-
|
|||
|
CSI followed by a digit string then ~
|
|||
|
The <value> code is the value of the digit string.
|
|||
|
All of the LK201 keyboard's editing and function
|
|||
|
keys generate sequences of this format.
|
|||
|
|
|||
|
Standard TECO PAGE 46
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
4.5 Operating System Character Filters
|
|||
|
|
|||
|
In general, TECO accepts any ASCII character, whether encountered
|
|||
|
in a macro, read from an indirect file, or entered directly via a
|
|||
|
command string from the terminal. (Note that TECOs other than
|
|||
|
TECO-11 strip the eighth bit on command input.) In addition, some
|
|||
|
operating systems filter out certain characters typed at a
|
|||
|
terminal and do not pass them to TECO. So that you can be aware
|
|||
|
of the possible difficulty of entering these characters directly
|
|||
|
into a TECO command string, we list them below in Table 4-5.
|
|||
|
Note that these characters are still valid characters to TECO,
|
|||
|
but may have to be entered indirectly, such as by using the nI`
|
|||
|
command.
|
|||
|
|
|||
|
^T Note:
|
|||
|
On some operating systems, the ^T character is an
|
|||
|
immediate action command (to the operating system), and
|
|||
|
invokes a one-line status report.
|
|||
|
|
|||
|
Where reference is made below in Table 4-5 to this
|
|||
|
note, TECO causes the operating system's recognition of
|
|||
|
^T to be turned off if TECO ever asks the user for
|
|||
|
input. The original state of ^T handling is restored
|
|||
|
upon exit. MUNGed TECO macros that never ask the user
|
|||
|
for input do not affect the operating system's handling
|
|||
|
of ^T.
|
|||
|
|
|||
|
Standard TECO PAGE 47
|
|||
|
Command String Editing
|
|||
|
|
|||
|
|
|||
|
TABLE 4-5: OPERATING SYSTEM CHARACTER FILTERS
|
|||
|
|
|||
|
SYSTEM CHARACTER SYSTEM's USE
|
|||
|
|
|||
|
RT-11 ^A VT11 support [only if GT ON]
|
|||
|
^B Background control [F/B systems only]
|
|||
|
^E VT11 support [only if GT ON]
|
|||
|
^F Foreground control [F/B systems only]
|
|||
|
^O Output control
|
|||
|
^Q Terminal Synchronization
|
|||
|
^S Terminal Synchronization
|
|||
|
|
|||
|
RSTS/E ^O Output control
|
|||
|
^Q Terminal Synchronization
|
|||
|
^S Terminal Synchronization
|
|||
|
|
|||
|
VAX/VMS ^O Output control
|
|||
|
^Q Terminal Synchronization
|
|||
|
^S Terminal Synchronization
|
|||
|
^T System status (see ^T Note above)
|
|||
|
^X Cancel Type-ahead
|
|||
|
^Y Process Interruption
|
|||
|
|
|||
|
RSX-11 ^O Output control
|
|||
|
^Q Terminal synchronization
|
|||
|
^S Terminal synchronization
|
|||
|
^X Task control [RSX-11D only]
|
|||
|
|
|||
|
TOPS-10 ^C^C Job interruption
|
|||
|
^O Output control
|
|||
|
^Q Terminal synchronization
|
|||
|
^S Terminal synchronization
|
|||
|
^T System status
|
|||
|
|
|||
|
TOPS-20 ^C^C Job interruption
|
|||
|
^O Output control
|
|||
|
^Q Terminal synchronization
|
|||
|
^S Terminal synchronization
|
|||
|
^T System status
|
|||
|
|
|||
|
OS/8 ^B Background control [F/B systems only]
|
|||
|
^F Foreground control [F/B systems only]
|
|||
|
^Y Reboot indicator [F/B systems only]
|
|||
|
|
|||
|
Standard TECO PAGE 48
|
|||
|
Command Descriptions
|
|||
|
|
|||
|
|
|||
|
CHAPTER 5
|
|||
|
|
|||
|
|
|||
|
COMMAND DESCRIPTIONS
|
|||
|
|
|||
|
|
|||
|
This chapter presents a detailed description of the full TECO
|
|||
|
command set, functionally organized. It assumes that the reader
|
|||
|
is familiar with the elementary TECO commands presented earlier.
|
|||
|
|
|||
|
In the sections following, the letters "m" and "n" are used in
|
|||
|
command formats to represent numerical arguments. These may be
|
|||
|
either simple integers or complex expressions. The letter "q"
|
|||
|
represents any Q-register.
|
|||
|
|
|||
|
Standard TECO PAGE 49
|
|||
|
File Selection Commands
|
|||
|
|
|||
|
|
|||
|
5.1 FILE SPECIFICATION COMMANDS
|
|||
|
|
|||
|
You must specify an input file whenever you want TECO to accept
|
|||
|
text from any source other than the terminal. You must specify
|
|||
|
an output file whenever you want to make a permanent change to
|
|||
|
the input file. Input and output files are selected by means of
|
|||
|
file specification commands.
|
|||
|
|
|||
|
File specification formats are operating system dependent and are
|
|||
|
fully described in the operating characteristics appendices at
|
|||
|
the end of this manual.
|
|||
|
|
|||
|
Almost every editing job begins with at least one file
|
|||
|
specification command. Additional file specification commands
|
|||
|
may be executed during an editing job whenever required;
|
|||
|
however, TECO will keep only one input file and one output file
|
|||
|
selected at a time.
|
|||
|
|
|||
|
TECO-11 recognizes two input and two output "streams" called the
|
|||
|
primary and secondary streams. The primary input and output
|
|||
|
streams are initially selected when TECO is invoked. Most file
|
|||
|
selection commands, and all of the other TECO commands (page
|
|||
|
manipulation, etc.), operate on the currently selected input
|
|||
|
and/or output stream.
|
|||
|
|
|||
|
The following sections list all of the file specification
|
|||
|
commands. Unless otherwise noted, all of these commands leave
|
|||
|
the text buffer unchanged. Examples of some of these commands
|
|||
|
appear in Chapter 1.
|
|||
|
|
|||
|
|
|||
|
5.1.1 File Opening Commands
|
|||
|
|
|||
|
The following commands are used to open files for input and
|
|||
|
output:
|
|||
|
|
|||
|
|
|||
|
TABLE 5-1A: FILE SPECIFICATION COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
EBfilespec` Edit Backup. This command is recommended for most
|
|||
|
editing jobs. It is used for files on
|
|||
|
file-structured devices only. It opens the
|
|||
|
specified file for input on the currently selected
|
|||
|
input stream and for output on the currently
|
|||
|
selected output stream. The EB command also keeps
|
|||
|
the unmodified file (the latest copy of the input
|
|||
|
file) available to the user; details of this
|
|||
|
process are system dependent (See appendices).
|
|||
|
|
|||
|
ERfilespec` Edit Read. Opens a file for input on the
|
|||
|
currently selected input stream.
|
|||
|
|
|||
|
Standard TECO PAGE 50
|
|||
|
File Opening Commands
|
|||
|
|
|||
|
|
|||
|
EWfilespec` Edit Write. Opens a file for output on the
|
|||
|
currently selected output stream.
|
|||
|
|
|||
|
:EBfilespec` Executes the EB command, and returns a numeric
|
|||
|
value. -1 returned indicates success: the file
|
|||
|
is open for input. A 0 indicates the specified
|
|||
|
file could not be found, and no error message is
|
|||
|
generated. Other errors (e.g., hardware errors,
|
|||
|
protection violations, etc.) generate messages and
|
|||
|
terminate command execution as usual.
|
|||
|
|
|||
|
:ERfilespec` Executes the ER command, and returns a numeric
|
|||
|
value. See the :EB command, above.
|
|||
|
|
|||
|
Standard TECO PAGE 51
|
|||
|
File Specification Switches
|
|||
|
|
|||
|
|
|||
|
5.1.2 File Specification Switches
|
|||
|
|
|||
|
Various system-dependent switches (qualifiers) of the form
|
|||
|
/SWITCH can be used with the file specification in ER, EW, and EB
|
|||
|
commands. These switches are listed below. Consult the
|
|||
|
operating system specific appendices for further details.
|
|||
|
|
|||
|
In addition, on some systems switches are provided for convenient
|
|||
|
handling of BASIC-PLUS or BASIC-PLUS-2 source files which use
|
|||
|
<LF> or & characters for program line continuation. See Appendix
|
|||
|
J for more information.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-1B: SWITCHES ON FILE SPECIFICATIONS
|
|||
|
|
|||
|
System Switch Meaning
|
|||
|
|
|||
|
OS/8 /S Ignore end-of-file (<CTRL/Z>s) on input.
|
|||
|
(SUPER TECO mode)
|
|||
|
|
|||
|
RSTS/E /B Read and write with unfiltered 8-bit
|
|||
|
/n Handle BASIC-PLUS-x line continuation
|
|||
|
/B+ Handle BASIC-PLUS line continuation
|
|||
|
/ Same as /B+
|
|||
|
/B2 Handle BASIC-PLUS-x line continuation
|
|||
|
/CLUSTERSIZE:n Specifies output file cluster size
|
|||
|
/MODE:n Use non-standard open mode
|
|||
|
|
|||
|
VAX/VMS, /B2 Handle BASIC-PLUS-x line continuation
|
|||
|
RSX-11 /CR Implied carriage control
|
|||
|
/-CR No (internal) carriage control
|
|||
|
/FT FORTRAN carriage control
|
|||
|
/FTN Same as /FT
|
|||
|
/RW Rewind magtape before opening file
|
|||
|
/SH Open the file in shared mode
|
|||
|
/SHR Same as /SH
|
|||
|
/STM Stream format
|
|||
|
/VAR Variable format
|
|||
|
|
|||
|
TOPS-10 /APPEND Append to existing output file (EW only)
|
|||
|
/ASCII File is ASCII
|
|||
|
/GENLSN Generate line sequence numbers
|
|||
|
/NOIN Don't put user type-in into log file
|
|||
|
/NONSTD Open DECtape in non-standard mode
|
|||
|
/NOOUT Don't put TECO's type out into log file
|
|||
|
(EL only)
|
|||
|
/OCTAL Read file in octal
|
|||
|
/PROTECT:n Specify protection code
|
|||
|
/SIXBIT Read file in pure SIXBIT
|
|||
|
/SUPLSN Suppress line sequence numbers
|
|||
|
|
|||
|
|
|||
|
5.1.3 File Close and Exit Commands
|
|||
|
|
|||
|
Standard TECO PAGE 52
|
|||
|
File Close and Exit Commands
|
|||
|
|
|||
|
|
|||
|
The following commands are used to close files and exit from
|
|||
|
TECO:
|
|||
|
|
|||
|
|
|||
|
TABLE 5-1C: FILE CLOSE AND EXIT
|
|||
|
|
|||
|
EC Moves the contents of the text buffer, plus the
|
|||
|
remainder of the current input file on the
|
|||
|
currently selected input stream, to the current
|
|||
|
output file on the currently selected output
|
|||
|
stream; then closes those input and output files.
|
|||
|
Control remains in TECO. EC leaves the text
|
|||
|
buffer empty.
|
|||
|
|
|||
|
EF Closes the current output file on the currently
|
|||
|
selected output stream. The EF command does not
|
|||
|
write the current contents of the buffer to the
|
|||
|
file before closing it.
|
|||
|
|
|||
|
EG` Performs the same function as the EC command, but
|
|||
|
then exits from TECO and re-executes the last
|
|||
|
COMPIL class command (.COMPILE, .LINK, .EXECUTE,
|
|||
|
etc.)
|
|||
|
[Same as EX in TECO-11]
|
|||
|
|
|||
|
EGtext` Performs the same function as the EC command, but
|
|||
|
then exits from TECO and passes "text" to the
|
|||
|
operating system as a command string to be
|
|||
|
executed (see appendices).
|
|||
|
|
|||
|
:EGcmd args` Performs operating system function "cmd" passing
|
|||
|
that function "args" as arguments. This command
|
|||
|
always returns a value as follows:
|
|||
|
|
|||
|
-1 Function "cmd" successfully performed.
|
|||
|
0 Function "cmd" is unsupported.
|
|||
|
Other Function "cmd" attempted, but failed. The
|
|||
|
returned value is the failure status.
|
|||
|
|
|||
|
There are four functions that are commonly
|
|||
|
defined:
|
|||
|
|
|||
|
INI Locates the user's private initialization
|
|||
|
TECO macro.
|
|||
|
LIB Defines the user's private library of TECO
|
|||
|
macros.
|
|||
|
MEM Read/write TECO's last edited file memory.
|
|||
|
VTE Locates the user's private scope editing
|
|||
|
TECO macro.
|
|||
|
|
|||
|
These four functions work as follows:
|
|||
|
|
|||
|
:EGcmd` Loads Q-register * with the
|
|||
|
|
|||
|
Standard TECO PAGE 53
|
|||
|
File Close and Exit Commands
|
|||
|
|
|||
|
|
|||
|
requested information. If there is
|
|||
|
no information (e.g., no user
|
|||
|
private scope editing TECO macro)
|
|||
|
then Q-register * is set to the null
|
|||
|
string.
|
|||
|
|
|||
|
:EGcmd ` Clears the information holder.
|
|||
|
Subsequent :EGcmd` commands will set
|
|||
|
Q-register * to the null string.
|
|||
|
|
|||
|
:EGcmd text` Sets the information holder to
|
|||
|
"text". Subsequent :EGcmd` commands
|
|||
|
will set Q-register * to "text".
|
|||
|
|
|||
|
Consult the appendices for details.
|
|||
|
|
|||
|
EK Kill the current output file on the currently
|
|||
|
selected output stream. This command, which
|
|||
|
purges the output file without closing it, is
|
|||
|
useful to abort an undesired edit. Executing the
|
|||
|
EK command after an EW which is superseding an
|
|||
|
existing file leaves the old file intact. The EK
|
|||
|
command also "undoes" an EB command. (See
|
|||
|
appendices for details.)
|
|||
|
|
|||
|
ELfilespec` Open the specified file for output as a log file.
|
|||
|
Any currently open log file will be closed. If
|
|||
|
the /APPEND switch is given, future logs will
|
|||
|
append to the file (if it already exists). The
|
|||
|
default is to supersede. All type-in to TECO and
|
|||
|
all type out from TECO goes into the log file.
|
|||
|
The log file is automatically closed by the EX and
|
|||
|
<CTRL/C><CTRL/C> TECO commands.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
EX Performs the same function as the EC command, but
|
|||
|
then exits from TECO. For safety reasons, this
|
|||
|
command is aborted if there is text in the text
|
|||
|
buffer but no output file is open. To exit TECO
|
|||
|
after just looking at a file, use the command
|
|||
|
string HKEX.
|
|||
|
|
|||
|
EZfilespec` This command is useful for outputting to magtapes
|
|||
|
and DECtapes, on which it initializes (zeros) the
|
|||
|
specified output device before switching the ouput
|
|||
|
to the primary output stream. In the case of a
|
|||
|
magtape, this command rewinds the magtape to load
|
|||
|
point. If the output device is a disk, this
|
|||
|
command works exactly like the EW command.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
<CTRL/C> The <CTRL/C> (caret/C) command terminates
|
|||
|
execution of the current command string and
|
|||
|
|
|||
|
Standard TECO PAGE 54
|
|||
|
File Close and Exit Commands
|
|||
|
|
|||
|
|
|||
|
returns control to TECO's prompt. (Under TECO-8,
|
|||
|
the <CTRL/C> command currently acts as
|
|||
|
<CTRL/C><CTRL/C>.)
|
|||
|
|
|||
|
<CTRL/C><CTRL/C>
|
|||
|
The ^C<CTRL/C> command causes an immediate abort
|
|||
|
and exit from TECO. Currently open files are not
|
|||
|
necessarily closed. See the appendices for more
|
|||
|
details. Note that the second <CTRL/C> may not be
|
|||
|
entered in up-arrow mode.
|
|||
|
|
|||
|
|
|||
|
5.1.4 Secondary Stream Commands
|
|||
|
|
|||
|
TECO-11 provides secondary input and output streams. These
|
|||
|
permit the user to have two input and two output files open at
|
|||
|
the same time, and to switch processing back and forth between
|
|||
|
them. Each stream maintains its file position independently, so
|
|||
|
that one can read from one stream (for example), switch to the
|
|||
|
other, and then switch back to the first and resume from where
|
|||
|
one left off. In addition, a separate command stream allows one
|
|||
|
to execute TECO commands from a file without disturbing either
|
|||
|
input stream.
|
|||
|
|
|||
|
The following commands manipulate the secondary input and output
|
|||
|
streams:
|
|||
|
|
|||
|
|
|||
|
TABLE 5-1D: SECONDARY STREAM COMMANDS
|
|||
|
[Not in TECO-8 or TECO-10]
|
|||
|
|
|||
|
Input commands (do not open or close any file; do not change the
|
|||
|
text buffer):
|
|||
|
|
|||
|
EP Switches the input to the secondary input stream.
|
|||
|
|
|||
|
ER` Switches the input to the primary input stream.
|
|||
|
|
|||
|
Output commands (do not open or close any file; do not change
|
|||
|
the text buffer):
|
|||
|
|
|||
|
EA Switches the output to the secondary output
|
|||
|
stream.
|
|||
|
|
|||
|
EW` Switches the output to the primary output stream.
|
|||
|
|
|||
|
Indirect file commands:
|
|||
|
|
|||
|
EIfilespec` Opens a file as an indirect command file, so that
|
|||
|
any further TECO requests for terminal input will
|
|||
|
come from this file. At end-of-file, or upon
|
|||
|
TECO's receipt of any error message, the indirect
|
|||
|
command file will be closed and terminal input
|
|||
|
|
|||
|
Standard TECO PAGE 55
|
|||
|
Secondary Stream Commands
|
|||
|
|
|||
|
|
|||
|
will be switched back to the terminal. Note that
|
|||
|
this command only presets where input will come
|
|||
|
from; it does not "splice" the file's data into
|
|||
|
the current command string.
|
|||
|
|
|||
|
While end-of-file closes the indirect command
|
|||
|
file, it does not automatically start execution of
|
|||
|
commands. Execution will begin only upon TECO's
|
|||
|
receipt of two adjacent <ESC>s. For instance,
|
|||
|
assume that FOO.TEC contains valid TECO commands,
|
|||
|
that it presets a return to your terminal with the
|
|||
|
customary EI`, but that it does not contain an
|
|||
|
<ESC><ESC> pair. If you type EIFOO``, TECO will
|
|||
|
read in the contents of FOO.TEC (building a
|
|||
|
command string) and attempt to continue building
|
|||
|
the command string by reading from your terminal
|
|||
|
when end of file on FOO.TEC is encountered.
|
|||
|
Things will appear "very quiet" until it occurs to
|
|||
|
you to type <DELIM><DELIM> and so begin execution
|
|||
|
of the (composite) command string.
|
|||
|
|
|||
|
All commands encountered in the indirect file will
|
|||
|
have their normal TECO meaning (as opposed to any
|
|||
|
immediate action meaning). For example, a
|
|||
|
<CTRL/U> encountered in an indirect file will not
|
|||
|
erase the command line in which it occurs.
|
|||
|
Instead, it will be treated as the TECO ^Uqtext`
|
|||
|
command. The only exception to this rule is the
|
|||
|
<ESC><ESC> command, which directs TECO to execute
|
|||
|
the preceding command string and then return to
|
|||
|
the indirect file at the point following the
|
|||
|
<ESC><ESC>. (We can say <ESC> explicitly here,
|
|||
|
because <DELIM> can be other than ESCape only in
|
|||
|
commands typed at the console.)
|
|||
|
|
|||
|
EI` If an indirect command file is active, this
|
|||
|
command will close it and resume terminal input
|
|||
|
from the terminal. Any portion of the file after
|
|||
|
a double <DELIM> which has not yet been read is
|
|||
|
discarded. This command has no effect if no
|
|||
|
indirect file is already open.
|
|||
|
|
|||
|
Standard TECO PAGE 56
|
|||
|
Wildcard Commands
|
|||
|
|
|||
|
|
|||
|
5.1.5 Wildcard Commands
|
|||
|
|
|||
|
TECO-11 supports wild card file processing with a set of special
|
|||
|
commands, to allow TECO programs to operate on a set of files.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-1E: WILDCARD COMMANDS
|
|||
|
[Not in TECO-8 or TECO-10]
|
|||
|
|
|||
|
ENfilespec` This command presets the "wild card" lookup
|
|||
|
filespec. It is only a preset; it does not open,
|
|||
|
close, or try to find any file. The "wild card"
|
|||
|
lookup is the only filespec that can contain any
|
|||
|
wild card notations. See the appendices for the
|
|||
|
allowed wild fields in each operating system.
|
|||
|
|
|||
|
EN` Once the wild card lookup filespec has been
|
|||
|
preset, executing this command will find the next
|
|||
|
file that matches the preset wild card lookup
|
|||
|
filespec and will load the filespec buffer with
|
|||
|
that file's name. The G* command (see Appendix C,
|
|||
|
section C.1.1) can be used to retrieve the fully
|
|||
|
expanded filespec. When no more occurences of the
|
|||
|
wild card filespec exist, the ?FNF error is
|
|||
|
returned.
|
|||
|
|
|||
|
:EN` Executes the EN` command, and returns a numeric
|
|||
|
value. A -1 indicates that another match of the
|
|||
|
wild card filespec exists and has been loaded into
|
|||
|
the filespec buffer. A 0 indicates no more
|
|||
|
occurences exist. No error message is generated.
|
|||
|
|
|||
|
The filespec argument to the file selection commands in TECO-11
|
|||
|
can use the string building characters described in Table 5-8A
|
|||
|
(see section 5.8). The <CTRL/E>Q* construct, described in
|
|||
|
Appendix C, is especially useful in TECO-11.
|
|||
|
|
|||
|
|
|||
|
5.1.6 Direct I/O to Q-Registers
|
|||
|
|
|||
|
TECO-10 provides commands to do I/O directly to and from the
|
|||
|
Q-registers, allowing I/O to bypass the text buffer.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-1F: DIRECT I/O TO Q-REGISTERS
|
|||
|
[Not in TECO-8 or TECO-11]
|
|||
|
|
|||
|
EQqfilespec` Read specified file into Q-register q. No <NULL>s
|
|||
|
or <FF>s are removed from the file, except that
|
|||
|
trailing <NULL>s are discarded. The only switch
|
|||
|
permitted on the filespec in this command is the
|
|||
|
/DELETE switch, which causes TECO to delete the
|
|||
|
file after reading it, providing that the file is
|
|||
|
|
|||
|
Standard TECO PAGE 57
|
|||
|
Direct I/O to Q-Registers
|
|||
|
|
|||
|
|
|||
|
less than 500 characters long. This command
|
|||
|
supports the pseudo-device TMP:, for TMPCOR.
|
|||
|
Consult the appropriate appendix for details.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
E%qfilespec` Create the specified file. The contents of the
|
|||
|
file will be the contents of Q-register q with no
|
|||
|
<NULL>s deleted. No switches are permitted on the
|
|||
|
filespec of this command. This command supports
|
|||
|
the pseudo-device TMP:, for TMPCOR. Consult the
|
|||
|
appropriate appendix for details.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
Standard TECO PAGE 58
|
|||
|
Page Manipulation Commands
|
|||
|
|
|||
|
|
|||
|
5.2 PAGE MANIPULATION COMMANDS
|
|||
|
|
|||
|
The following commands permit text to be read into the text
|
|||
|
buffer from an input file or written from the buffer onto an
|
|||
|
output file.
|
|||
|
|
|||
|
All of the input commands listed in this table assume that the
|
|||
|
input file is organized into pages small enough to fit into
|
|||
|
available memory. If any page of the input file contains more
|
|||
|
characters than will fit into available memory, the input command
|
|||
|
will continue reading characters into the buffer until a line
|
|||
|
feed is encountered when the buffer is about 3/4 full. See the
|
|||
|
appendices for more details. Special techniques for handling
|
|||
|
pages larger than the buffer capacity will be presented later in
|
|||
|
this chapter.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-2: PAGE MANIPULATION COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
APPEND commands:
|
|||
|
|
|||
|
A Appends the next page of the input file to the contents
|
|||
|
of the text buffer, thus combining the two pages of
|
|||
|
text on a single page with no intervening form feed
|
|||
|
character. This command takes no argument. To perform
|
|||
|
n Appends, use the n<A> construct. Note that nA is a
|
|||
|
completely different command.
|
|||
|
|
|||
|
:A Equivalent to the A command except that a value is
|
|||
|
returned. -1 is returned if the append succeeded, and
|
|||
|
0 is returned if the append failed because the
|
|||
|
end-of-the-input-file had previously been reached (^N
|
|||
|
flag is -1 at start of this command).
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
n:A Appends n lines of text from the input file to the
|
|||
|
contents of the text buffer. The value of n must not
|
|||
|
be negative. A value is returned indicating whether or
|
|||
|
not there were in fact n lines remaining in the input
|
|||
|
file. -1 is returned if the command succeeded. 0 is
|
|||
|
returned if end-of-file on the input file was
|
|||
|
encountered before all n lines were read in. Note that
|
|||
|
the command can succeed and yet read in fewer than n
|
|||
|
lines in the case that the text buffer fills up.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
PAGE Commands:
|
|||
|
|
|||
|
P Writes the contents of the buffer onto the output file,
|
|||
|
then clears the buffer and reads the next page of the
|
|||
|
input file into the buffer. A form feed is appended to
|
|||
|
|
|||
|
Standard TECO PAGE 59
|
|||
|
Page Manipulation Commands
|
|||
|
|
|||
|
|
|||
|
the output file if the last page read in (with a P, Y,
|
|||
|
or A command) was terminated with a form feed.
|
|||
|
|
|||
|
:P Same as the P command except that a value is returned.
|
|||
|
-1 is returned if the command succeeded. 0 is returned
|
|||
|
if the command failed because the end-of-file on the
|
|||
|
input file had been reached prior to the initiation of
|
|||
|
this command. The command string <:P;> takes you to
|
|||
|
end of file.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
nP Executes the P command n times, where n must be a
|
|||
|
non-zero positive integer.
|
|||
|
|
|||
|
In TECO-11 on VAX/VMS, n can be a negative integer (and
|
|||
|
-P means -1P). A -nP command will back up n pages.
|
|||
|
|
|||
|
n:P Executes the :P command n times, where n must be a
|
|||
|
non-zero positive integer. In TECO-11 on VAX/VMS, n
|
|||
|
can be a negative integer (and -:P means -1:P). This
|
|||
|
command returns 0 when another page could not be backed
|
|||
|
up because beginning of file had been reached.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
PW Write the contents of the buffer onto the output file
|
|||
|
and append a form feed character. The buffer is not
|
|||
|
cleared and the pointer position remains unchanged.
|
|||
|
|
|||
|
nPW Executes the PW command n times, where n must be a
|
|||
|
non-zero positive integer.
|
|||
|
|
|||
|
m,nPW Writes the contents of the buffer between pointer
|
|||
|
positions m and n onto the output file. m and n must
|
|||
|
be positive integers. A form feed is not appended to
|
|||
|
this output, nor is the buffer cleared. The pointer
|
|||
|
position remains unchanged.
|
|||
|
|
|||
|
m,nP Equivalent to m,nPW.
|
|||
|
|
|||
|
HPW Equivalent to the PW command except that a form feed
|
|||
|
character is not appended to the output.
|
|||
|
|
|||
|
HP Equivalent to HPW.
|
|||
|
|
|||
|
YANK commands:
|
|||
|
|
|||
|
Y Clears the text buffer and then reads the next page of
|
|||
|
the input file into the buffer. Because the Y command
|
|||
|
DESTROYS the current text buffer, its use can result in
|
|||
|
the loss of data, and is subject to "Yank protection"
|
|||
|
(see ED flag in section 5.14).
|
|||
|
|
|||
|
-Y Clears the text buffer and then reads the previous page
|
|||
|
|
|||
|
Standard TECO PAGE 60
|
|||
|
Page Manipulation Commands
|
|||
|
|
|||
|
|
|||
|
of the file being edited back into the buffer. Because
|
|||
|
the Y command DESTROYS the current text buffer, its use
|
|||
|
can result in the loss of data, and is subject to "Yank
|
|||
|
protection" (see ED flag in section 5.14).
|
|||
|
[TECO-11 on VAX/VMS only]
|
|||
|
|
|||
|
:Y Same as the Y command but a value is returned. -1 is
|
|||
|
returned if the Yank succeeded. 0 is returned if the
|
|||
|
Yank failed because the end-of-file had been reached on
|
|||
|
the input file prior to the initiation of this command.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
-:Y Same as the -Y command but a value is returned. -1 is
|
|||
|
returned if the Yank succeeded. 0 is returned if the
|
|||
|
Yank failed because the beginning of file had been
|
|||
|
reached on the file being edited prior to the
|
|||
|
initiation of this command.
|
|||
|
[TECO-11 on VAX/VMS only]
|
|||
|
|
|||
|
EY Same as the Y command, but its action is always
|
|||
|
permitted regardless of the value of the Yank
|
|||
|
Protection bit in the ED flag. Remember that Yank
|
|||
|
DESTROYS the current buffer; there's no way to get it
|
|||
|
back!
|
|||
|
|
|||
|
:EY Same as the :Y command, but its action is always
|
|||
|
permitted regardless of the value of the Yank
|
|||
|
protection bit in the ED flag. Remember that Yank
|
|||
|
DESTROYS the current buffer; there's no way to get it
|
|||
|
back!
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
Standard TECO PAGE 61
|
|||
|
Buffer Pointer Manipulation Commands
|
|||
|
|
|||
|
|
|||
|
5.3 BUFFER POINTER MANIPULATION COMMANDS
|
|||
|
|
|||
|
Table 5-3 describes all of the buffer pointer manipulation
|
|||
|
commands These commands may be used to move the pointer to a
|
|||
|
position between any two characters in the buffer, but they will
|
|||
|
not move the pointer across a buffer boundary. If any R or C
|
|||
|
command attempts to move the pointer backward beyond the
|
|||
|
beginning of the buffer or forward past the end of the buffer,
|
|||
|
the command is ignored and an error message is printed. If any L
|
|||
|
command attempts to exceed the buffer boundaries, the pointer is
|
|||
|
positioned at the boundary which would have been exceeded and no
|
|||
|
error message is printed.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-3: BUFFER POINTER MANIPULATION COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
CHARACTER commands:
|
|||
|
|
|||
|
C Advances the pointer forward across one character.
|
|||
|
|
|||
|
nC Executes the C command n times. If n is positive, the
|
|||
|
pointer is moved forward across n characters. If n is
|
|||
|
negative, the pointer is moved backward across n
|
|||
|
characters. If n is zero, the pointer position is not
|
|||
|
changed.
|
|||
|
|
|||
|
n:C Same as nC except that a value is returned. If the
|
|||
|
command succeeded, -1 is returned. If the command
|
|||
|
failed, the pointer does not move and a value of 0 is
|
|||
|
returned.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
:C Equivalent to 1:C.
|
|||
|
|
|||
|
-C Equivalent to -1C.
|
|||
|
|
|||
|
JUMP commands:
|
|||
|
|
|||
|
J Moves the pointer to a position immediately preceding
|
|||
|
the first character in the buffer. Equivalent to 0J.
|
|||
|
|
|||
|
nJ Moves the pointer to a position immediately following
|
|||
|
the nth character in the buffer.
|
|||
|
|
|||
|
ZJ Moves the pointer to a position immediately following
|
|||
|
the last character in the buffer.
|
|||
|
|
|||
|
n:J Same as the nJ command except that if pointer position
|
|||
|
n is outside of the buffer, the pointer does not move
|
|||
|
and a value of 0 is returned. If the command
|
|||
|
succeeded, a value of -1 is returned.
|
|||
|
|
|||
|
Standard TECO PAGE 62
|
|||
|
Buffer Pointer Manipulation Commands
|
|||
|
|
|||
|
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
LINE commands:
|
|||
|
|
|||
|
L Advances the pointer forward across the next line
|
|||
|
terminator (line feed, vertical tab, or form feed) and
|
|||
|
positions it at the beginning of the next line.
|
|||
|
|
|||
|
nL Executes the L command n times. A positive value of n
|
|||
|
advances the pointer to the beginning of the nth line
|
|||
|
following its current position. A negative value of n
|
|||
|
moves the pointer backwards to the beginning of the nth
|
|||
|
complete line preceding its current position. If n is
|
|||
|
zero, the pointer is moved to the beginning of the line
|
|||
|
on which it is currently positioned.
|
|||
|
|
|||
|
-L Equivalent to -1L.
|
|||
|
|
|||
|
REVERSE commands:
|
|||
|
|
|||
|
R Moves the pointer backward across one character.
|
|||
|
|
|||
|
nR Executes the R command n times. If n is positive, the
|
|||
|
pointer is moved backward across n characters. If n is
|
|||
|
negative, the pointer is moved forward across n
|
|||
|
characters. If n is zero, the position of the pointer
|
|||
|
is not changed.
|
|||
|
|
|||
|
-R Equivalent to -1R.
|
|||
|
|
|||
|
n:R Same as the nR command except that a value is returned.
|
|||
|
If the command succeeded, then a value of -1 is
|
|||
|
returned. If the command failed, then the buffer
|
|||
|
pointer is not moved and a value of 0 is returned.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
:R Equivalent to 1:R.
|
|||
|
|
|||
|
Standard TECO PAGE 63
|
|||
|
Text Type Out Commands
|
|||
|
|
|||
|
|
|||
|
5.4 TEXT TYPE OUT COMMANDS
|
|||
|
|
|||
|
Table 5-4 describes the commands used to type out part or all of
|
|||
|
the contents of the buffer for examination. These commands do
|
|||
|
not move the buffer pointer.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-4: TEXT TYPE OUT COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
T Types out the contents of the buffer from the current
|
|||
|
position of the buffer pointer through and including
|
|||
|
the next line terminator character.
|
|||
|
|
|||
|
nT Types n lines. If n is positive, types the n lines
|
|||
|
following the current position of the pointer. If n is
|
|||
|
negative, types the n lines preceding the pointer. If
|
|||
|
n is zero, types the contents of the buffer from the
|
|||
|
beginning of the line on which the pointer is located
|
|||
|
up to the pointer.
|
|||
|
|
|||
|
-T Equivalent to -1T.
|
|||
|
|
|||
|
m,nT Types out the contents of the buffer between pointer
|
|||
|
positions m and n.
|
|||
|
|
|||
|
.,.+nT Types out the n characters immediately following the
|
|||
|
buffer pointer. n should be greater than zero.
|
|||
|
|
|||
|
.-n,.T Types the n characters immediately preceding the buffer
|
|||
|
pointer. n should be greater than zero.
|
|||
|
|
|||
|
n^T Types out to the console the character whose ASCII
|
|||
|
value is n. Whatever normal type-out conversions may
|
|||
|
currently be in effect and applicable (such as
|
|||
|
translation of control characters to up-arrow format)
|
|||
|
are done. The value of n is used modulo 256.
|
|||
|
|
|||
|
n:^T Outputs to the console the character whose ASCII value
|
|||
|
is n. Output is done in "one-shot" binary mode; no
|
|||
|
type-out translations are done. The value of n is used
|
|||
|
modulo 256.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
HT Types out the entire contents of the buffer.
|
|||
|
|
|||
|
V Types out the current line. Equivalent to 0TT.
|
|||
|
|
|||
|
nV Types out n-1 lines on each side of the current line.
|
|||
|
Equivalent to 1-nTnT.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
Standard TECO PAGE 64
|
|||
|
Text Type Out Commands
|
|||
|
|
|||
|
|
|||
|
m,nV Types out m-1 lines before and n-1 lines after the
|
|||
|
current line.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
^Atext<CTRL/A>
|
|||
|
Types "text" on the terminal. While the command may
|
|||
|
begin with <CTRL/A> or Caret/A, the closing character
|
|||
|
must be a <CTRL/A>. A numeric argument must not be
|
|||
|
specified with this command.
|
|||
|
|
|||
|
@^A/text/ Equivalent to the ^A command except that the text to be
|
|||
|
printed may be bracketed with any character. This
|
|||
|
avoids the need for the closing <CTRL/A>.
|
|||
|
|
|||
|
Standard TECO PAGE 65
|
|||
|
Text Type Out Commands
|
|||
|
|
|||
|
|
|||
|
You may stop or delay the output of any type out command by
|
|||
|
typing certain special characters at the keyboard while TECO is
|
|||
|
typing out at the terminal (via a T, V, ^A, or :G command).
|
|||
|
These characters are described in the table below:
|
|||
|
|
|||
|
|
|||
|
TABLE 5-4B: TYPE OUT TIME COMMANDS
|
|||
|
|
|||
|
CHARACTER FUNCTION
|
|||
|
|
|||
|
<CTRL/O> Stops the terminal output of the current command
|
|||
|
string. TECO continues to run and to send
|
|||
|
characters to the terminal, however, these
|
|||
|
characters are suppressed from actually printing on
|
|||
|
the terminal. You can resume printing characters by
|
|||
|
typing another <CTRL/O> while type out is being
|
|||
|
suppressed. TECO cancels this suppression the next
|
|||
|
time that it prompts for command string input. A
|
|||
|
TECO macro can cancel the effect of any <CTRL/O> by
|
|||
|
setting the 16's bit in the ET flag (see section
|
|||
|
5.16).
|
|||
|
|
|||
|
<CTRL/S> Freezes the terminal output of the current command
|
|||
|
string. TECO stops running the next time it tries
|
|||
|
to output a character to your terminal, and waits
|
|||
|
for you to type a <CTRL/Q> to indicate that output
|
|||
|
should resume.
|
|||
|
|
|||
|
<CTRL/Q> Causes TECO to resume any type out that was frozen
|
|||
|
via use of the <CTRL/S> command described above.
|
|||
|
This character has this effect only while typout is
|
|||
|
frozen. Striking any key other than <CTRL/Q> or
|
|||
|
<CTRL/C> while type out is frozen will have
|
|||
|
unpredictable results; consult the appropriate
|
|||
|
operating system manual.
|
|||
|
|
|||
|
|
|||
|
Note that <CTRL/O>, <CTRL/Q>, and <CTRL/S> are legal TECO
|
|||
|
commands as well. When TECO is not typing on the terminal (when
|
|||
|
you are entering a command string, for example), these characters
|
|||
|
do not have the effect described above. They may be entered into
|
|||
|
your command string just like any other control character (except
|
|||
|
under operating systems that filter out these characters).
|
|||
|
|
|||
|
Standard TECO PAGE 66
|
|||
|
Deletion Commands
|
|||
|
|
|||
|
|
|||
|
5.5 DELETION COMMANDS
|
|||
|
|
|||
|
Table 5-5 summarizes the text deletion commands, which permit
|
|||
|
deletion of single characters, groups of adjacent characters,
|
|||
|
single lines, or groups of adjacent lines.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-5: TEXT DELETION COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
DELETE commands:
|
|||
|
|
|||
|
D Delete the first character following the current
|
|||
|
position of the buffer pointer.
|
|||
|
|
|||
|
nD Execute the D command n times. If n is positive, the n
|
|||
|
characters following the current pointer position are
|
|||
|
deleted. If n is negative, the n characters preceding
|
|||
|
the current pointer position are deleted. If n is
|
|||
|
zero, the command is ignored.
|
|||
|
|
|||
|
-D Equivalent to -1D.
|
|||
|
|
|||
|
m,nD Equivalent to m,nK.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
n:D Same as nD but returns a value (-1 if command succeeds,
|
|||
|
0 if command failed because the range of characters to
|
|||
|
be deleted fell outside the text buffer).
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
FDtext` Search for the specified text string and delete it.
|
|||
|
(See search commands in section 5.7.)
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
@FD/text/ Equivalent to FDtext` except that the <DELIM> character
|
|||
|
is not necessary.
|
|||
|
|
|||
|
FR` Equivalent to -nD where n is the length of the last
|
|||
|
insert, get or search command. See the description of
|
|||
|
the FRtext` command in section 5.6 for more details.
|
|||
|
|
|||
|
@FR// Form of the FR` command that does not require use of
|
|||
|
the <DELIM> character.
|
|||
|
|
|||
|
KILL commands:
|
|||
|
|
|||
|
K Deletes the contents of the buffer from the current
|
|||
|
position of the buffer pointer through and including
|
|||
|
the next line terminator character.
|
|||
|
|
|||
|
nK Executes the K command n times. If n is positive, the
|
|||
|
|
|||
|
Standard TECO PAGE 67
|
|||
|
Deletion Commands
|
|||
|
|
|||
|
|
|||
|
n lines following the current pointer position are
|
|||
|
deleted. If n is negative, the n lines preceding the
|
|||
|
current pointer position are deleted. If n is zero,
|
|||
|
the contents of the buffer from the beginning of the
|
|||
|
line on which the pointer is located up to the pointer
|
|||
|
is deleted. It is not an error if more lines are
|
|||
|
specified than occur when a boundary of the text buffer
|
|||
|
is encountered.
|
|||
|
|
|||
|
-K Equivalent to -1K.
|
|||
|
|
|||
|
m,nK Deletes the contents of the buffer between pointer
|
|||
|
positions m and n. The pointer moves to the point of
|
|||
|
the deletion. The ?POP error message (or its
|
|||
|
equivalent) is issued if either m or n is out of range.
|
|||
|
|
|||
|
FKtext` Executes a Stext` command then deletes all the text
|
|||
|
from the initial pointer position to the new pointer
|
|||
|
position.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
@FK/text/ Equivalent to FKtext` except that "text" may contain
|
|||
|
any character, including <ESCAPE>, other than the
|
|||
|
delimiter (shown here as /).
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
HK Deletes the entire contents of the buffer.
|
|||
|
|
|||
|
Standard TECO PAGE 68
|
|||
|
Insertion Commands
|
|||
|
|
|||
|
|
|||
|
5.6 INSERTION COMMANDS
|
|||
|
|
|||
|
Table 5-6 lists all of the text insertion commands. These
|
|||
|
commands cause the string of characters specified in the command
|
|||
|
to be inserted into the text buffer at the current position of
|
|||
|
the buffer pointer. Following execution of an insertion command,
|
|||
|
the pointer will be positioned immediately after the last
|
|||
|
character of the insertion.
|
|||
|
|
|||
|
The length of an insertion command is limited primarily by the
|
|||
|
amount of memory available for command string storage. During
|
|||
|
normal editing jobs, it is most convenient to limit insertions to
|
|||
|
about 10 or 15 lines each. When command string space is about to
|
|||
|
run out, TECO will ring the terminal's bell after each character
|
|||
|
that is typed. From the time you hear the first warning bell,
|
|||
|
you have 10 characters to type in order to clean up your command
|
|||
|
line. Attempting to enter too many characters into the current
|
|||
|
command string causes unpredictible results to occur and should
|
|||
|
be avoided. Use the DELETE key to shorten the command to permit
|
|||
|
its termination.
|
|||
|
|
|||
|
As explained above in Chapter 4, certain characters are filtered
|
|||
|
out by the operating system and/or may perform special functions,
|
|||
|
and some characters are immediate action commands and have
|
|||
|
special effect. If you want to insert such characters into the
|
|||
|
text buffer, use the nI` command described in the following
|
|||
|
table. It will insert any ASCII character into the buffer,
|
|||
|
including the special characters that could not ordinarily be
|
|||
|
typed at a terminal.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-6: TEXT INSERTION COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
INSERT commands:
|
|||
|
|
|||
|
Itext` Where "text" is a string of ASCII characters terminated
|
|||
|
by a <DELIM>. The specified text string is entered
|
|||
|
into the buffer at the current position of the pointer,
|
|||
|
with the pointer positioned immediately after the last
|
|||
|
character of the insertion.
|
|||
|
|
|||
|
nI` This form of the I command inserts the single character
|
|||
|
whose ASCII code is n into the buffer at the current
|
|||
|
position of the buffer pointer. (n is taken modulo 256
|
|||
|
in TECO-11, modulo 128 in other TECOs.) nI` is used to
|
|||
|
insert characters that are not available on the user's
|
|||
|
terminal or special characters such as DELETE which may
|
|||
|
not be inserted from a terminal with the standard I
|
|||
|
command.
|
|||
|
|
|||
|
@I/text/ Equivalent to the I command except that the text to be
|
|||
|
|
|||
|
Standard TECO PAGE 69
|
|||
|
Insertion Commands
|
|||
|
|
|||
|
|
|||
|
inserted may contain ESCAPE characters. A delimiting
|
|||
|
character (shown as a slash here) must precede and
|
|||
|
follow the text to be inserted, as described in Section
|
|||
|
3.1.2 above.
|
|||
|
|
|||
|
n@I// Equivalent to the nI` command, but does not require the
|
|||
|
<DELIM> character.
|
|||
|
|
|||
|
<TAB>text` This command is equivalent to the I command except
|
|||
|
that the <TAB> is part of the text which is inserted
|
|||
|
into the buffer.
|
|||
|
|
|||
|
FRtext` Equivalent to "-nDItext`", where "n" is obtained from
|
|||
|
the most recent occurrence of the following: (a) the
|
|||
|
length of the most recent string found by a successful
|
|||
|
search command, (b) the length of the most recent text
|
|||
|
string inserted (including insertions from the FS, FN,
|
|||
|
or FR commands), or (c) the length of the string
|
|||
|
retrieved by the most recent "G" command. In effect,
|
|||
|
the last string inserted or found is replaced with
|
|||
|
"text", provided that the pointer has not been moved.
|
|||
|
After execution of this command, the buffer pointer is
|
|||
|
positioned immediately after "text".
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
@FR/text/ Equivalent to "FRtext`", except that "text" may contain
|
|||
|
ESCAPE characters.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
nFRtext` Equivalent to "nDItext`". If n is less than 0,
|
|||
|
characters preceding the buffer pointer are deleted and
|
|||
|
replaced with "text". If n is greater than 0,
|
|||
|
characters following the buffer pointer are deleted and
|
|||
|
replaced with "text". In either case, the buffer
|
|||
|
pointer is left positioned immediately after "text"
|
|||
|
upon completion of this command.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
n@FR/text/ Equivalent to "nFRtext`", except that "text" may
|
|||
|
contain ESCAPE characters.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
m,nFRtext` Equivalent to "m,nDItext`". The characters between
|
|||
|
buffer positions m and n are deleted and replaced with
|
|||
|
"text". The buffer pointer is left positioned
|
|||
|
immediately after "text" upon completion of this
|
|||
|
command.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
m,n@FR/text/ Equivalent to "m,nFRtext`", except that "text" may
|
|||
|
contain ESCAPE characters.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
Standard TECO PAGE 70
|
|||
|
Search Commands
|
|||
|
|
|||
|
|
|||
|
5.7 SEARCH COMMANDS
|
|||
|
|
|||
|
In many cases, the easiest way to position the buffer pointer is
|
|||
|
by means of a character string search. Search commands cause
|
|||
|
TECO to scan through text until a specified string of characters
|
|||
|
is found, and then position the buffer pointer at the end of the
|
|||
|
string. A character string search begins at the current position
|
|||
|
of the pointer. It proceeds within the current buffer in a
|
|||
|
forward or a reverse direction or through the file in a forward
|
|||
|
direction. Specifying a negative numeric argument to the search
|
|||
|
command causes the search to proceed backwards from the pointer.
|
|||
|
|
|||
|
Your last explicitly specified search string is always remembered
|
|||
|
by TECO. If a search command is specified with a null search
|
|||
|
string argument, the last explicitly defined search string will
|
|||
|
be used. This saves having to retype a complex or lengthy search
|
|||
|
string on successive search commands.
|
|||
|
|
|||
|
Normally searches are "unbounded" - they search from the current
|
|||
|
position to the end of the text buffer (or in the case of
|
|||
|
backwards searches, until the beginning of the buffer). A
|
|||
|
bounded search, however, will only search from the current
|
|||
|
position to the specified bound limit. If the search string is
|
|||
|
found within the bound limits, the pointer is positioned
|
|||
|
immediately after the last character in the string. If the
|
|||
|
string cannot be found, the pointer is left unchanged.
|
|||
|
|
|||
|
A special case of the bounded search occurs when the upper and
|
|||
|
lower bound limits are the same. In such a case, the search
|
|||
|
command is called an anchored search, and is used to compare the
|
|||
|
search argument against the character string immediately
|
|||
|
following the text buffer pointer.
|
|||
|
|
|||
|
TECO-8 does not permit backward, bounded, or anchored searches.
|
|||
|
This is a general property and will not be specifically mentioned
|
|||
|
again in the following tables.
|
|||
|
|
|||
|
Standard TECO PAGE 71
|
|||
|
Search Commands
|
|||
|
|
|||
|
|
|||
|
TABLE 5-7A: SEARCH COMMANDS
|
|||
|
|
|||
|
Stext` Where "text" is a string of characters terminated by a
|
|||
|
<DELIM>. This command searches the text buffer for the
|
|||
|
next occurrence of the specified character string
|
|||
|
following the current position of the buffer pointer.
|
|||
|
If the string is found, the pointer is positioned after
|
|||
|
the last character in the string. If it is not found,
|
|||
|
the pointer is positioned immediately before the first
|
|||
|
character in the buffer (i.e., a 0J is executed) and an
|
|||
|
error message is printed.
|
|||
|
|
|||
|
nStext` This command searches for the nth occurrence of the
|
|||
|
specified character string, where n is greater than
|
|||
|
zero. It is identical to the S command in other
|
|||
|
respects.
|
|||
|
|
|||
|
-nStext` Identical to "nStext`" except that the search proceeds
|
|||
|
in the reverse direction. If the string is not found,
|
|||
|
the pointer is positioned immediately before the first
|
|||
|
character in the buffer and an error message is
|
|||
|
printed. If the pointer is positioned at the beginning
|
|||
|
of or within an occurrence of the desired string, that
|
|||
|
occurrence is considered to be the first one found.
|
|||
|
Upon successful completion, the pointer is positioned
|
|||
|
after the last character in the string found.
|
|||
|
|
|||
|
-Stext` Equivalent to -1Stext`.
|
|||
|
|
|||
|
Ntext` Performs the same function as the S command except that
|
|||
|
the search is continued across page boundaries, if
|
|||
|
necessary, until the character string is found or the
|
|||
|
end of the input file is reached. This is accomplished
|
|||
|
by executing an effective P command after each page is
|
|||
|
searched. If the end of the input file is reached, an
|
|||
|
error message is printed and it is necessary to close
|
|||
|
the output file and re-open it as an input file before
|
|||
|
any further editing may be done on that file. The N
|
|||
|
command will not locate a character string which spans
|
|||
|
a page boundary.
|
|||
|
|
|||
|
-Ntext` Performs the same function as the -S command except
|
|||
|
that the search is continued (backwards) across page
|
|||
|
boundaries, if necessary, until the character string is
|
|||
|
found or the beginning of the file being edited is
|
|||
|
reached.
|
|||
|
[TECO-11 on VAX/VMS only]
|
|||
|
|
|||
|
-nNtext` This command searches (backwards) for the nth
|
|||
|
occurrence of the specified character string. It is
|
|||
|
identical to the -N command in other respects.
|
|||
|
[TECO-11 on VAX/VMS only]
|
|||
|
|
|||
|
Standard TECO PAGE 72
|
|||
|
Search Commands
|
|||
|
|
|||
|
|
|||
|
nNtext` This command searches for the nth occurrance of the
|
|||
|
specified character string, where n must be greater
|
|||
|
than zero. It is identical to the N command in other
|
|||
|
respects.
|
|||
|
|
|||
|
_text` The underscore command is identical to the N command
|
|||
|
except that the search is continued across page
|
|||
|
boundaries by executing effective Y commands instead of
|
|||
|
P commands, so that no output is generated. Since an
|
|||
|
underscore search can result in the loss of data, it is
|
|||
|
aborted under the same circumstances as the Y command
|
|||
|
(see the ED flag in section 5.16). Note that
|
|||
|
underscore is backarrow on some terminals.
|
|||
|
|
|||
|
n_text` This command searches for the nth occurrence of the
|
|||
|
specified character string, where n must be greater
|
|||
|
than zero. It is identical to the _ command in other
|
|||
|
respects.
|
|||
|
|
|||
|
In TECO-11 on VAX/VMS, n can be negative, in which case
|
|||
|
the search proceeds backwards through each text buffer
|
|||
|
and through the file being edited. It terminates upon
|
|||
|
the correct search string match and/or beginning of
|
|||
|
file. A -n:_ command returns 0 at beginning of file.
|
|||
|
|
|||
|
E_text` Same as _text` command except that effective EY (rather
|
|||
|
than Y) commands are used. Thus, this command is never
|
|||
|
aborted and is not controlled by the Yank protection
|
|||
|
bit in the ED flag. Remember that Yank DESTROYS the
|
|||
|
current buffer; there's no way to get it back!
|
|||
|
|
|||
|
nE_text` Same as n_text` command except that effective EY
|
|||
|
(rather than Y) commands are used.
|
|||
|
|
|||
|
Standard TECO PAGE 73
|
|||
|
Search Commands
|
|||
|
|
|||
|
|
|||
|
TABLE 5-7B: BOUNDED SEARCH COMMANDS
|
|||
|
|
|||
|
m,nStext` System specific command. Consult Appendix C.
|
|||
|
|
|||
|
m,nFBtext` Performs the same function as the nStext` command, but
|
|||
|
m and n (inclusive) serve as bounds for the search. In
|
|||
|
order for a search to be successful, the first
|
|||
|
character to match must occur between buffer pointer
|
|||
|
positions m and n. The string that is matched is
|
|||
|
permitted to extend beyond the search limits specified,
|
|||
|
provided that it begins within bounds. If m<n, then
|
|||
|
the search proceeds in a forwards direction. If m>n,
|
|||
|
then the search proceeds in the reverse direction.
|
|||
|
|
|||
|
nFBtext` Performs a bounded search over the next n lines. If n
|
|||
|
is positive, the search proceeds forward over the next
|
|||
|
n lines; if n is negative the search proceeds
|
|||
|
backwards over the n preceding lines; if n is zero,
|
|||
|
the search proceeds backwards over the portion of the
|
|||
|
line preceding the pointer.
|
|||
|
|
|||
|
FBtext` Equivalent to 1FBtext`.
|
|||
|
|
|||
|
-FBtext` Equivalent to -1FBtext`.
|
|||
|
|
|||
|
::Stext` Compare command. The ::S command is not a true search.
|
|||
|
If the characters in the buffer immediately following
|
|||
|
the current pointer position match the search string,
|
|||
|
the pointer is moved to the end of the string and the
|
|||
|
command returns a value of -1; i.e., the next command
|
|||
|
is executed with an argument of -1. If the characters
|
|||
|
in the buffer do not match the string, the pointer is
|
|||
|
not moved and the command returns a value of 0.
|
|||
|
Identical to ".,.:FBtext`".
|
|||
|
|
|||
|
|
|||
|
|
|||
|
The search and replace commands listed below perform equivalent
|
|||
|
functions to the search commands listed next to them, but then
|
|||
|
delete "text1" and replace it with "text2".
|
|||
|
|
|||
|
|
|||
|
TABLE 5-7C: SEARCH AND REPLACE COMMANDS
|
|||
|
|
|||
|
Search & Replace Search Command
|
|||
|
|
|||
|
FStext1`text2` Stext1`
|
|||
|
|
|||
|
nFStext1`text2` nStext1`
|
|||
|
|
|||
|
FNtext1`text2` Ntext1`
|
|||
|
|
|||
|
nFNtext1`text2` nNtext1`
|
|||
|
|
|||
|
Standard TECO PAGE 74
|
|||
|
Search Commands
|
|||
|
|
|||
|
|
|||
|
F_text1`text2` _text1`
|
|||
|
[not in TECO-10]
|
|||
|
|
|||
|
nF_text1`text2` n_text1`
|
|||
|
[Not in TECO-10]
|
|||
|
|
|||
|
FCtext1`text2` FBtext1`
|
|||
|
|
|||
|
nFCtext1`text2` nFBtext1`
|
|||
|
|
|||
|
m,nFCtext1`text2` m,nFBtext1`
|
|||
|
|
|||
|
|
|||
|
In addition, the four following commands can be used on TECO-10:
|
|||
|
|
|||
|
FDtext` Identical to the "FStext``" command.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
nFDtext` Identical to the "nFStext``" command.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
nFKtext` Searches for the nth following occurrence of "text" and
|
|||
|
then deletes all characters in the text buffer between
|
|||
|
the pointer positions before and after the search.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
FKtext` Equivalent to 1FKtext`
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
The FS, F_, and FN commands above can also be reverse searches
|
|||
|
(n<0) or bounded searches (m,n argument). A reverse F_ or FN
|
|||
|
acts like a reverse S; that is the search terminates when the
|
|||
|
beginning of the text buffer is encountered.
|
|||
|
|
|||
|
(In TECO-11 on VAX/VMS, -nFN searches backwards through each text
|
|||
|
buffer and through the file being edited. It terminates upon the
|
|||
|
correct search string match and/or beginning of file. A colon
|
|||
|
modified reverse search returns 0 at beginning of file.)
|
|||
|
|
|||
|
If a search command is entered without a text argument, TECO will
|
|||
|
execute the search command as though it had been entered with the
|
|||
|
same character string argument as the last search command
|
|||
|
entered. For example, suppose the command "STHE END`" results in
|
|||
|
an error message, indicating that character string "THE END" was
|
|||
|
not found on the current page. Entering the command "N`" causes
|
|||
|
TECO to execute an N search for the same character string.
|
|||
|
Although the text argument may be omitted, the command terminator
|
|||
|
<DELIM> must always be entered.
|
|||
|
|
|||
|
Search commands can make use of the colon modifier described in
|
|||
|
Chapter 3. The following examples illustrate use of the colon
|
|||
|
modifier:
|
|||
|
|
|||
|
Standard TECO PAGE 75
|
|||
|
Search Commands
|
|||
|
|
|||
|
|
|||
|
COMMANDS: n:Stext`
|
|||
|
m,n:Stext`
|
|||
|
n:Ntext`
|
|||
|
n:_text`
|
|||
|
n:FStext1`text2`
|
|||
|
m,n:FStext1`text2`
|
|||
|
n:FNtext1`text2`
|
|||
|
etc.
|
|||
|
|
|||
|
FUNCTION: In each case, execute the search command. If the
|
|||
|
search is successful, execute the next sequential
|
|||
|
command with an argument of -1. If the search
|
|||
|
fails, execute the next command with an argument
|
|||
|
of zero. If the next command does not require a
|
|||
|
numeric argument, execute it as it stands.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
All search commands may also use the @ modifier to use alternate
|
|||
|
delimiters, to allow <ESCAPE> characters in search strings or to
|
|||
|
avoid the use of <ESCAPE> characters in command strings. Such
|
|||
|
search commands take the following forms:
|
|||
|
|
|||
|
COMMANDS: @S/text/
|
|||
|
m,n@FB/text/
|
|||
|
n@FS/text1/text2/
|
|||
|
@:N/text/
|
|||
|
etc.
|
|||
|
|
|||
|
Standard TECO PAGE 76
|
|||
|
Search Arguments
|
|||
|
|
|||
|
|
|||
|
5.8 SEARCH ARGUMENTS
|
|||
|
|
|||
|
TECO builds the search string by loading its search string buffer
|
|||
|
from the supplied search command argument. To help you enter
|
|||
|
special characters or frequently used character sequences, the
|
|||
|
argument may contain special string building characters. Table
|
|||
|
5-8A lists the string building characters and their functions.
|
|||
|
|
|||
|
TECO-8 does not support the extended String Build functions or
|
|||
|
Match Control Constructs that begin with <CTRL/E>. This is a
|
|||
|
general property and will not be repeated in the following
|
|||
|
tables.
|
|||
|
|
|||
|
Note that, as explained in Chapter 3, a caret (up-arrow) may be
|
|||
|
used to indicate that the character following it is to be treated
|
|||
|
as a control character. Any of the commands below may be entered
|
|||
|
using the caret. This function of the caret can be disabled by
|
|||
|
using the ED flag (see 5.16 and appendices).
|
|||
|
|
|||
|
|
|||
|
TABLE 5-8A: STRING BUILDING CHARACTERS
|
|||
|
|
|||
|
CHARACTER FUNCTION
|
|||
|
|
|||
|
<CTRL/Q> A <CTRL/Q> character in a search command argument
|
|||
|
indicates that the character following the
|
|||
|
<CTRL/Q> is to be used literally rather than as a
|
|||
|
match control character.
|
|||
|
|
|||
|
<CTRL/R> Same as <CTRL/Q>.
|
|||
|
|
|||
|
<CTRL/V> A <CTRL/V> character in a search command argument
|
|||
|
indicates that the character following the
|
|||
|
<CTRL/V> is to be used as the equivalent character
|
|||
|
in the lower case ASCII range (i.e., octal 100 to
|
|||
|
137 is treated as octal 140 to 177).
|
|||
|
|
|||
|
<CTRL/V><CTRL/V>
|
|||
|
Two successive <CTRL/V> characters in a string
|
|||
|
argument indicate to TECO that all following
|
|||
|
alphabetic characters in this string are to be
|
|||
|
converted to lower case unless an explicit ^W is
|
|||
|
given to override this state. This state
|
|||
|
continues until the end of the string or until a
|
|||
|
^W^W construct is encountered.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
<CTRL/W> A <CTRL/W> character in a search command argument
|
|||
|
indicates that the character following the
|
|||
|
<CTRL/W> is to be used as the equivalent character
|
|||
|
in the upper case ASCII range (i.e., octal 140 to
|
|||
|
177 is treated as octal 100 to 137).
|
|||
|
|
|||
|
Standard TECO PAGE 77
|
|||
|
Search Arguments
|
|||
|
|
|||
|
|
|||
|
<CTRL/W><CTRL/W>
|
|||
|
Two successive <CTRL/W> characters indicates to
|
|||
|
TECO that all following alphabetic characters in
|
|||
|
this string are to be converted to upper case
|
|||
|
unless an explicit ^V is encountered to override
|
|||
|
this state. This state continues until the end of
|
|||
|
the string or until a ^V^V construct is
|
|||
|
encountered.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
<CTRL/E>Qq <CTRL/E>Qq indicates that the string stored in
|
|||
|
Q-register q is to be used in the position
|
|||
|
occupied by the ^EQq in the search string. Q
|
|||
|
registers are discussed in sections 3.3.2 and 5.9.
|
|||
|
[Not in TECO-10]
|
|||
|
|
|||
|
<CTRL/E>Uq <CTRL/E>Uq indicates that the character whose
|
|||
|
ASCII code is specified by the numeric storage
|
|||
|
area of Q-register q is to be used in the position
|
|||
|
occupied by the ^EUq in the search string.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
|
|||
|
String build characters are also permitted inside the string
|
|||
|
arguments of the O, EB, ER, EW, and EG commands.
|
|||
|
|
|||
|
TECO executes a search command by attempting to match the search
|
|||
|
command argument character-by-character with some portion of the
|
|||
|
input file. There are several special control characters that
|
|||
|
may be used in search command arguments to alter the usual
|
|||
|
matching process. Table 5-8B lists these match control
|
|||
|
characters and their functions.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-8B: MATCH CONTROL CHARACTERS
|
|||
|
|
|||
|
CHARACTER FUNCTION
|
|||
|
|
|||
|
<CTRL/X> A <CTRL/X> character indicates that this position
|
|||
|
in the character string may be any character.
|
|||
|
TECO accepts any character as a match for
|
|||
|
<CTRL/X>.
|
|||
|
|
|||
|
<CTRL/S> A <CTRL/S> character indicates that any separator
|
|||
|
character is acceptable in this position. TECO
|
|||
|
accepts any character that is not a letter (upper
|
|||
|
or lower case A to Z) or a digit (0 to 9) as a
|
|||
|
match for <CTRL/S>.
|
|||
|
|
|||
|
<CTRL/N>x TECO accepts any character as a match for the
|
|||
|
<CTRL/N>x combination EXCEPT the character which
|
|||
|
follows the <CTRL/N>. <CTRL/N> can be combined
|
|||
|
with other special characters. For example, the
|
|||
|
|
|||
|
Standard TECO PAGE 78
|
|||
|
Search Arguments
|
|||
|
|
|||
|
|
|||
|
combination <CTRL/N><CTRL/E>D means match anything
|
|||
|
except a digit in this position.
|
|||
|
|
|||
|
<CTRL/E>A <CTRL/E>A indicates that any alphabetic character
|
|||
|
(upper or lower case A to Z) is acceptable in this
|
|||
|
position.
|
|||
|
|
|||
|
<CTRL/E>B Same as <CTRL/S>.
|
|||
|
|
|||
|
<CTRL/E>C <CTRL/E>C indicates that any character that is
|
|||
|
legal as part of a symbol constituent is
|
|||
|
acceptable in this position. TECO accepts any
|
|||
|
letter (upper or lower case A to Z), any digit (0
|
|||
|
to 9), a dot (.), or a dollar sign ($) as a match
|
|||
|
for <CTRL/E>C. Additional characters may be
|
|||
|
matched depending upon the operating system;
|
|||
|
consult the appropriate appendix.
|
|||
|
|
|||
|
<CTRL/E>D <CTRL/E>D indicates that any digit (0 to 9) is
|
|||
|
acceptable in this position.
|
|||
|
|
|||
|
<CTRL/E>Gq <CTRL/E>Gq indicates that any character contained
|
|||
|
in Q-register q is acceptable in this position.
|
|||
|
For example, if Q-register A contains "A*:" then
|
|||
|
TECO accepts either A, *, or : as a match for
|
|||
|
<CTRL/E>GA.
|
|||
|
[Not in TECO-10]
|
|||
|
|
|||
|
<CTRL/E>L <CTRL/E>L indicates that any line terminator (line
|
|||
|
feed, vertical tab, or form feed) is acceptable in
|
|||
|
the position occupied by <CTRL/E>L in the search
|
|||
|
string.
|
|||
|
|
|||
|
<CTRL/E>M <CTRL/E>M indicates that any non-zero number of
|
|||
|
occurrences of the immediately following character
|
|||
|
or match control construct is acceptable at this
|
|||
|
position.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
<CTRL/E>R <CTRL/E>R indicates that any alphanumeric
|
|||
|
character (letter or digit as defined above) is
|
|||
|
acceptable in this position.
|
|||
|
|
|||
|
<CTRL/E>S <CTRL/E>S indicates that any non-null string of
|
|||
|
spaces and/or tabs is acceptable in the position
|
|||
|
occupied by <CTRL/E>S.
|
|||
|
|
|||
|
<CTRL/E>V <CTRL/E>V indicates that any lower case alphabetic
|
|||
|
character is acceptable in this position.
|
|||
|
|
|||
|
<CTRL/E>W <CTRL/E>W indicates that any upper case alphabetic
|
|||
|
character is acceptable in this position.
|
|||
|
|
|||
|
Standard TECO PAGE 79
|
|||
|
Search Arguments
|
|||
|
|
|||
|
|
|||
|
<CTRL/E>X Equivalent to <CTRL/X>.
|
|||
|
|
|||
|
<CTRL/E><nnn> <CTRL/E><nnn> indicates that the character whose
|
|||
|
ASCII octal code is nnn is acceptable in this
|
|||
|
position.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
<CTRL/E>[a,b,c,...]
|
|||
|
<CTRL/E>[a,b,c,...] indicates that any one of the
|
|||
|
specified characters is acceptable in this
|
|||
|
position. One or more characters or other match
|
|||
|
control constructs are permitted.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
TECO-8 uses special symbols to represent certain match control
|
|||
|
characters when they are displayed by an error message. These
|
|||
|
display symbols are:
|
|||
|
|
|||
|
Character Display
|
|||
|
|
|||
|
^N <NOT>
|
|||
|
^S <SEP>
|
|||
|
^X <ANY>
|
|||
|
|
|||
|
Standard TECO PAGE 80
|
|||
|
Q-registers
|
|||
|
|
|||
|
|
|||
|
5.9 Q-REGISTER MANIPULATION
|
|||
|
|
|||
|
TECO provides data storage registers, called Q-registers, each of
|
|||
|
which may be used to store an integral numeric value and,
|
|||
|
simultaneously, an ASCII character string. Q-registers are
|
|||
|
described in section 3.3.2; this section describes the commands
|
|||
|
used to load values into and retrieve values from Q-registers.
|
|||
|
|
|||
|
An important kind of character string which may be stored in the
|
|||
|
text portion of a Q-register is a TECO command string. Such a
|
|||
|
command is known as a macro, and is available for execution via
|
|||
|
the Mq command, described in Table 5-9C below. (See also section
|
|||
|
4.4, Immediate ESCape-sequence commands, for a keypad method of
|
|||
|
macro invocation, and section 4.2, for the *q command, which
|
|||
|
saves the last-typed command for possible editing or
|
|||
|
re-execution.)
|
|||
|
|
|||
|
TECO-10 allows additional Q-registers other than those described
|
|||
|
in section 3.3.2. Consult Appendix I for further details.
|
|||
|
|
|||
|
Table 5-9A lists the commands which permit characters to be
|
|||
|
loaded into the Q-registers.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-9A: Q-REGISTER LOADING COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
nUq Put n in the numeric storage area of Q-register q.
|
|||
|
|
|||
|
m,nUq Equivalent to the nUqm command. That is, this command
|
|||
|
puts the number n into the numeric storage area of
|
|||
|
Q-register q and then returns the number m as a value.
|
|||
|
The command UAUB is useful at the beginning of a macro
|
|||
|
to save the two arguments specified on the macro call.
|
|||
|
(See the m,nMq command below.)
|
|||
|
|
|||
|
n%q Add n to the contents of the number storage area of
|
|||
|
Q-register q. The updated contents of Q-register q are
|
|||
|
also returned as a value to be passed to the next
|
|||
|
command.
|
|||
|
|
|||
|
If your intent is only to update the Q-register, good
|
|||
|
programming practice suggests following the n%q command
|
|||
|
with a <DELIM> or ^[ to prevent the returned value from
|
|||
|
unintentionally affecting the following command.
|
|||
|
|
|||
|
n%q` Same as n%q but discards the value returned.
|
|||
|
|
|||
|
%q Equivalent to 1%q.
|
|||
|
|
|||
|
^Uqstring`
|
|||
|
This command inserts character string "string" into the
|
|||
|
|
|||
|
Standard TECO PAGE 81
|
|||
|
Q-registers
|
|||
|
|
|||
|
|
|||
|
text storage area of Q-register q. When entering a
|
|||
|
command string from the terminal, you must specify ^U
|
|||
|
using the caret/U format, since the <CTRL/U> character
|
|||
|
is the line erase immediate action command.
|
|||
|
|
|||
|
:^Uqstring`
|
|||
|
This command appends character string "string" to the
|
|||
|
text storage area of Q-register "q".
|
|||
|
[not in TECO-8]
|
|||
|
|
|||
|
n^Uq` This form of the ^Uq` command inserts the single
|
|||
|
character whose ASCII code is n into the text storage
|
|||
|
area of Q-register "q". (n is taken modulo 256 in
|
|||
|
TECO-11, modulo 128 in other TECOs.)
|
|||
|
[not in TECO-8]
|
|||
|
|
|||
|
n:^Uq` This form of the :^Uq` command appends the single
|
|||
|
character whose ASCII code is n to the text storage
|
|||
|
area of Q-register "q". (n is taken modulo 256 in
|
|||
|
TECO-11, modulo 128 in other TECOs.)
|
|||
|
[not in TECO-8]
|
|||
|
|
|||
|
@^Uq/string/
|
|||
|
@:^Uq/string/
|
|||
|
n@^Uq//
|
|||
|
n@:^Uq// Equivalent, respectively, to the ^Uqstring`,
|
|||
|
:^Uqstring`, n^Uq`, and n:^Uq` commands, except that
|
|||
|
alternate delimiters are used and no <DELIM> characters
|
|||
|
are necessary.
|
|||
|
|
|||
|
nXq Clear Q-register q and move n lines into it, where n is
|
|||
|
a signed integer. If n is positive, the n lines
|
|||
|
following the current pointer position are copied into
|
|||
|
the text storage area of Q-register q. If n is
|
|||
|
negative, the n lines preceding the pointer are copied.
|
|||
|
If n is zero, the contents of the buffer from the
|
|||
|
beginning of the line on which the pointer is located
|
|||
|
up to the pointer is copied. The pointer is not moved.
|
|||
|
The text is not deleted.
|
|||
|
|
|||
|
Xq Equivalent to 1Xq.
|
|||
|
|
|||
|
-Xq Equivalent to -1Xq.
|
|||
|
|
|||
|
m,nXq Copy the contents of the buffer from the m+1th
|
|||
|
character through and including the nth character into
|
|||
|
the text storage area of Q-register q. M and n must be
|
|||
|
positive, and m should be less than n.
|
|||
|
|
|||
|
.,.+nXq Copy the n characters immediately following the buffer
|
|||
|
pointer into the text storage area of Q-register q. N
|
|||
|
should be greater than zero.
|
|||
|
|
|||
|
Standard TECO PAGE 82
|
|||
|
Q-registers
|
|||
|
|
|||
|
|
|||
|
.-n,.Xq Copy the n characters immediately preceeding the buffer
|
|||
|
pointer into the text storage area of Q-register q. N
|
|||
|
should be greater than zero.
|
|||
|
|
|||
|
n:Xq Append n lines to Q-register q, where n is a signed
|
|||
|
integer with the same functions as n in the nXq command
|
|||
|
above. The pointer is not moved.
|
|||
|
[not in TECO-8]
|
|||
|
|
|||
|
The colon construct for appending to a Q-register can
|
|||
|
be used with all forms of the X command.
|
|||
|
|
|||
|
]q Pop from the Q-register push-down list into Q-register
|
|||
|
q. Any previous contents of Q-register q are
|
|||
|
destroyed. Both the numeric and text parts of the
|
|||
|
Q-register are loaded by this command. The Q-register
|
|||
|
push-down list is a last-in first-out (LIFO) storage
|
|||
|
area. (See section 3.3.3 for a description of the
|
|||
|
push-down list.) This command does not use or affect
|
|||
|
numeric values. Numeric values are passed through this
|
|||
|
command transparently. This allows macros to restore
|
|||
|
Q-registers and still return numeric values.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
:]q Execute the ]q command and return a numeric value. A
|
|||
|
-1 indicates that there was another item on the
|
|||
|
Q-register push-down list to be popped. A 0 indicates
|
|||
|
that the Q-register push-down list was empty, so
|
|||
|
Q-register q was not modified.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
*q Save last-typed command string. See section 4.2.
|
|||
|
|
|||
|
Standard TECO PAGE 83
|
|||
|
Q-registers
|
|||
|
|
|||
|
|
|||
|
Table 5-9B lists the commands which permit data to be retrieved
|
|||
|
from the Q-registers.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-9B: Q-REGISTER RETRIEVAL COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
Qq Use the integer stored in the number storage area of
|
|||
|
Q-register q as the argument of the next command.
|
|||
|
|
|||
|
nQq Return the ASCII value of the (n+1)th character in
|
|||
|
Q-register q. The argument n must be between 0 and the
|
|||
|
Q-register's size minus 1. If n is out of range, a
|
|||
|
value of -1 is returned. Characters within a
|
|||
|
Q-register are numbered the same way that characters in
|
|||
|
the text buffer are numbered. The initial character is
|
|||
|
at character position 0, the next character is at
|
|||
|
character position 1, etc. Therefore, if Q-register A
|
|||
|
contains "xyz", then 0QA will return the ASCII code for
|
|||
|
"x" and 1QA will return the ASCII code for "y".
|
|||
|
|
|||
|
:Qq Use the number of characters stored in the text storage
|
|||
|
area of Q-register q as the argument of the next
|
|||
|
command.
|
|||
|
|
|||
|
Gq Copy the contents of the text storage area of
|
|||
|
Q-register q into the buffer at the current position of
|
|||
|
the buffer pointer, leaving the pointer positioned
|
|||
|
after the last character copied.
|
|||
|
|
|||
|
:Gq Print the contents of the text storage area of
|
|||
|
Q-register q on the terminal. Neither the text buffer
|
|||
|
nor the buffer pointer is changed by this command.
|
|||
|
|
|||
|
[q Copy the contents of the numeric and text storage areas
|
|||
|
of Q-register q into the Q-register push-down list.
|
|||
|
This command does not alter either the numeric or text
|
|||
|
storage areas of Q-register q. It does not use or
|
|||
|
affect numeric values. Numeric values are passed
|
|||
|
through this command transparently, allowing macros to
|
|||
|
save temporary Q-registers and still accept numeric
|
|||
|
values. (Note, however, macros written to use local
|
|||
|
Q-registers, available in TECO-11, may be able to avoid
|
|||
|
saving and restoring Q-registers via the the pushdown
|
|||
|
list.) The command sequence [A ]B replicates the text
|
|||
|
string and numeric value from Q-register A into
|
|||
|
Q-register B.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
Standard TECO PAGE 84
|
|||
|
Q-registers
|
|||
|
|
|||
|
|
|||
|
Table 5-9C lists the commands which cause macros (strings stored
|
|||
|
in Q-registers) to be executed.
|
|||
|
|
|||
|
Macro invocations can be nested recursively; the limit is set by
|
|||
|
the amount of pushdown storage TECO has available.
|
|||
|
|
|||
|
In this table only, a distinction is made between a global
|
|||
|
Q-register name (indicated below by "q") and a local Q-register
|
|||
|
name (indicated below by ".q"). Elsewhere in this manual, "q"
|
|||
|
indicates either a global or local Q-register name.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-9C: MACRO INVOCATION COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
Mq Execute the contents of the text storage area of global
|
|||
|
Q-register q as a command string. In TECO-11, a new
|
|||
|
set of local Q-registers is created before the macro is
|
|||
|
invoked.
|
|||
|
|
|||
|
nMq Execute the Mq command as above, using n as a numeric
|
|||
|
argument for the first command contained in global
|
|||
|
Q-register q. In TECO-11, a new set of local
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
m,nMq Execute the Mq command as above, using m,n as numeric
|
|||
|
arguments for the first command contained in global
|
|||
|
Q-register q. In TECO-11, a new set of local
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
:Mq Execute the contents of the text storage area of global
|
|||
|
Q-register q as a command string. In TECO-11, the
|
|||
|
current set of local Q-registers remains available to
|
|||
|
the invoked macro; no new set is created.
|
|||
|
|
|||
|
n:Mq Execute the :Mq command as above, using n as a numeric
|
|||
|
argument for the first command contained in global
|
|||
|
Q-register q. In TECO-11, no new set of local
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
m,n:Mq Execute the :Mq command as above, using m,n as numeric
|
|||
|
arguments for the first command contained in global
|
|||
|
Q-register q. In TECO-11, no new set of local
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
M.q Execute the contents of the text storage area of local
|
|||
|
Q-register .q as a command string. In TECO-11, no new
|
|||
|
set of local Q-registers is created.
|
|||
|
|
|||
|
nM.q Execute the M.q command as above, using n as a numeric
|
|||
|
argument for the first command contained in local
|
|||
|
Q-register .q. In TECO-11, no new set of local
|
|||
|
|
|||
|
Standard TECO PAGE 85
|
|||
|
Q-registers
|
|||
|
|
|||
|
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
m,nM.q Execute the M.q command as above, using m,n as numeric
|
|||
|
arguments for the first command contained in local
|
|||
|
Q-register .q. In TECO-11, no new set of local
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
:M.q Execute the contents of the text storage area of local
|
|||
|
Q-register .q as a command string. In TECO-11, no new
|
|||
|
set of local Q-registers is created.
|
|||
|
|
|||
|
n:M.q Execute the :M.q command as above, using n as a numeric
|
|||
|
argument for the first command contained in local
|
|||
|
Q-register .q. In TECO-11, no new set of local
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
m,n:M.q Execute the :M.q command as above, using m,n as numeric
|
|||
|
arguments for the first command contained in local
|
|||
|
Q-register .q. In TECO-11, no new set of local
|
|||
|
Q-registers is created.
|
|||
|
|
|||
|
Standard TECO PAGE 86
|
|||
|
Arithmetic and Expressions
|
|||
|
|
|||
|
|
|||
|
5.10 ARITHMETIC AND EXPRESSIONS
|
|||
|
|
|||
|
The numeric argument of a TECO command may consist of a single
|
|||
|
integer, any of the characters listed in Table 5-11, the numeric
|
|||
|
contents of any Q-register, or an arithmetic combination of these
|
|||
|
elements. If an arithmetic expression is supplied as a numeric
|
|||
|
argument, TECO will evaluate the expression. All arithmetic
|
|||
|
expressions are evaluated from left to right without any operator
|
|||
|
precedence. Parentheses may be used to override the normal order
|
|||
|
of evaluation of an expression. If parentheses are used, all
|
|||
|
operations within the parentheses are performed, left to right,
|
|||
|
before operations outside the parentheses. Parentheses may be
|
|||
|
nested, in which case the innermost expression contained by
|
|||
|
parentheses will be evaluated first. Table 5-10A lists all of
|
|||
|
the arithmetic operators that may be used in arithmetic
|
|||
|
expressions.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-10A: ARITHMETIC OPERATORS
|
|||
|
|
|||
|
OPERATOR EXAMPLE FUNCTION
|
|||
|
|
|||
|
+ +2=2 Ignored if used before the first term in an
|
|||
|
expression.
|
|||
|
|
|||
|
+ 5+6=11 Addition, if used between terms.
|
|||
|
|
|||
|
- -2=-2 Negation, if used before the first term in an
|
|||
|
expression.
|
|||
|
|
|||
|
- 8-2=6 Subtraction, if used between terms
|
|||
|
|
|||
|
* 8*2=16 Multiplication. Used between terms.
|
|||
|
|
|||
|
/ 8/3=2 Integer division with loss of the remainder.
|
|||
|
Used between terms.
|
|||
|
|
|||
|
& 12&10=8 Bitwise logical AND of the binary
|
|||
|
representation of the two terms. Used
|
|||
|
between the terms.
|
|||
|
|
|||
|
# 12#10=14 Bitwise logical OR of the binary of the two
|
|||
|
terms. Used between the terms.
|
|||
|
|
|||
|
^_ 5^_=-6 Unary one's complement. Used after an
|
|||
|
expression. This is a TECO command that
|
|||
|
complements its argument. Strictly speaking,
|
|||
|
it is not a unary operator.
|
|||
|
|
|||
|
Standard TECO PAGE 87
|
|||
|
Arithmetic and Expressions
|
|||
|
|
|||
|
|
|||
|
TABLE 5-10B: CONVERSION AND RADIX CONTROL COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
n= This command causes the value of n to be output at the
|
|||
|
terminal in decimal followed by a carriage return and
|
|||
|
line feed. Decimal numeric conversion is signed. For
|
|||
|
example, the unsigned number 65535 will output as -1 on
|
|||
|
TECO-11. TECO's radix is unaltered.
|
|||
|
|
|||
|
n== This command causes the value of n to be output at the
|
|||
|
terminal in octal (base 8) followed by a carriage
|
|||
|
return and line feed. Octal numeric conversion is
|
|||
|
unsigned. For example, the unsigned number 8191
|
|||
|
(decimal) will output as 17777 on TECO-8. TECO's radix
|
|||
|
is unaltered.
|
|||
|
|
|||
|
n=== This command causes the value of n to be output at the
|
|||
|
terminal in hexadecimal (base 16) followed by a
|
|||
|
carriage return and line feed. Hexadecimal output is
|
|||
|
unsigned. TECO's radix is unaltered.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
n:=
|
|||
|
n:==
|
|||
|
n:=== These commands are equivalent to n=, n==, and n===,
|
|||
|
except that they leave the carriage positioned at the
|
|||
|
end of the output.
|
|||
|
|
|||
|
^O <CTRL/O> (caret/O) causes all subsequent numeric input
|
|||
|
to be accepted as octal numbers. Numeric conversions
|
|||
|
using the \ or n\ commands will also be octal. The
|
|||
|
digits 8 and 9 become illegal as numeric characters.
|
|||
|
The octal radix will continue to be used until the next
|
|||
|
^D command is executed or until TECO's radix is changed
|
|||
|
by an n^R command.
|
|||
|
NOTE: On TECO-10, this command only affects the
|
|||
|
immediately following digit string.
|
|||
|
|
|||
|
^D <CTRL/D> (caret/D) causes all subsequent numeric input
|
|||
|
to be accepted as decimal numbers. This is the initial
|
|||
|
setting.
|
|||
|
[Not in TECO-10]
|
|||
|
|
|||
|
^R This command returns the binary value of TECO's current
|
|||
|
radix.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
n^R This command sets TECO's radix to the value of n. It
|
|||
|
is currently implemented only in TECO-11, where n may
|
|||
|
only be one of the values 8, 10, or 16 (representing
|
|||
|
octal mode, decimal mode, or hexadecimal mode). If n
|
|||
|
is not one of these values, TECO's radix remains
|
|||
|
|
|||
|
Standard TECO PAGE 88
|
|||
|
Arithmetic and Expressions
|
|||
|
|
|||
|
|
|||
|
unchanged and the ?IRA error message is produced.
|
|||
|
|
|||
|
\ A backslash character which is not preceded by a
|
|||
|
numeric argument causes TECO to evaluate the digit
|
|||
|
string (if any) beginning with the character
|
|||
|
immediately following the buffer pointer and ending at
|
|||
|
the next character that is not valid for the current
|
|||
|
radix. The value becomes the numeric argument of the
|
|||
|
next command. The first character may be a digit or +
|
|||
|
or -. As the backslash command is evaluated, TECO
|
|||
|
moves the buffer pointer to a position immediately
|
|||
|
following the digit string. If there is no digit
|
|||
|
string following the pointer, the result is zero and
|
|||
|
the pointer position remains unchanged. Except on
|
|||
|
TECO-8, the digits 8 and 9 will stop the evaluation if
|
|||
|
TECO's current radix is octal.
|
|||
|
|
|||
|
n\ The backslash command preceded by an argument inserts
|
|||
|
the value of n into the text buffer at the current
|
|||
|
position of the pointer, leaving the pointer positioned
|
|||
|
after the last digit of the insertion. The insertion
|
|||
|
is either signed decimal (decimal radix), unsigned
|
|||
|
octal (octal radix), or unsigned hexadecimal
|
|||
|
(hexadecimal radix). Note that \ is a "bidirectional"
|
|||
|
command. n\ inserts a string into text while \ (no
|
|||
|
argument) returns a numeric result.
|
|||
|
|
|||
|
Standard TECO PAGE 89
|
|||
|
Special Numeric Values
|
|||
|
|
|||
|
|
|||
|
5.11 SPECIAL NUMERIC VALUES
|
|||
|
|
|||
|
TECO maintains several internal variables which record conditions
|
|||
|
within TECO. The variable name is equivalent to the current
|
|||
|
contents of the variable and may be entered as a numeric argument
|
|||
|
to TECO commands. When the command is executed, the current
|
|||
|
value of the designated variable becomes the numeric argument of
|
|||
|
the command.
|
|||
|
|
|||
|
Some of the characters which stand for specific values associated
|
|||
|
with the text buffer have been introduced earlier in this manual.
|
|||
|
For example, the dot character (.), which represents the current
|
|||
|
pointer position, may be used in the argument of a T command.
|
|||
|
The command ".,.+5T" causes the 5 characters following the buffer
|
|||
|
pointer to be typed out. When this command is executed, the
|
|||
|
number of characters preceding the buffer pointer is substituted
|
|||
|
in each case for the "dot". The addition is then carried out,
|
|||
|
and the command is executed as though it were of the form "m,nT".
|
|||
|
|
|||
|
Table 5-11 lists all of the characters which have special numeric
|
|||
|
values. Any of these characters may be used as numeric argument
|
|||
|
in place of the value it represents.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-11: CHARACTERS ASSOCIATED WITH NUMERIC QUANTITIES
|
|||
|
|
|||
|
CHARACTER FUNCTION
|
|||
|
|
|||
|
B Always equivalent to zero. Thus, B represents the
|
|||
|
position preceding the first character in the buffer.
|
|||
|
|
|||
|
Z Equivalent to the number of characters currently
|
|||
|
contained in the buffer. Thus, Z represents the
|
|||
|
position following the last character in the buffer.
|
|||
|
|
|||
|
. Equivalent to the number of characters between the
|
|||
|
beginning of the buffer and the current position of the
|
|||
|
pointer. Thus "." represents the current position of
|
|||
|
the pointer.
|
|||
|
|
|||
|
H Equivalent to the numeric pair "B,Z", or "from the
|
|||
|
beginning of the buffer up to the end of the buffer."
|
|||
|
Thus, H represents the whole buffer.
|
|||
|
|
|||
|
nA Equivalent to the ASCII code for the .+n+1th character
|
|||
|
in the buffer (that is, the character to the right of
|
|||
|
buffer pointer position .+n). The expression -1A is
|
|||
|
equivalent to the ASCII code of the character
|
|||
|
immediately preceding the pointer and 0A is equivalent
|
|||
|
to the ASCII code of the character immediately
|
|||
|
following the pointer (the current character). If the
|
|||
|
character position referenced lies outside the bounds
|
|||
|
of the text buffer, this command returns a -1.
|
|||
|
|
|||
|
Standard TECO PAGE 90
|
|||
|
Special Numeric Values
|
|||
|
|
|||
|
|
|||
|
Mq The Mq command (execute the contents of the text
|
|||
|
storage area of Q-register "q" as a command string) may
|
|||
|
return a numeric value if the last command in the
|
|||
|
string returns a numeric value and is not followed by a
|
|||
|
<ESC>.
|
|||
|
|
|||
|
Qq Equivalent to the value stored in the number storage
|
|||
|
area of Q-register q.
|
|||
|
|
|||
|
:Qq Equivalent to the number of characters in the text
|
|||
|
storage area of Q-register q.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
\ Backslash is equivalent to the numeric value of the
|
|||
|
digit string in the text buffer at the current pointer
|
|||
|
position, interpreted in the current radix. The
|
|||
|
pointer is moved to the end of the digit string.
|
|||
|
|
|||
|
^B <CTRL/B> (caret/B) is equivalent to the current date
|
|||
|
via the following equations:
|
|||
|
|
|||
|
OS/8: ^B = (((month*32)+day)*8)+((year-1970)&7)+k
|
|||
|
where k = 4096 if year>1977
|
|||
|
and k=0 otherwise
|
|||
|
RT-11: ^B = (((month*32)+day)*32)+year-1972
|
|||
|
RSTS/E: ^B = ((year-1970)*1000)+day within year
|
|||
|
RSX-11: ^B = ((year-1900)*16+month)*32+day
|
|||
|
VAX/VMS: ^B = ((year-1900)*16+month)*32+day
|
|||
|
TOPS-10: ^B = (((year-1964)*12+month-1)*31+day-1)
|
|||
|
|
|||
|
^E <CTRL/E> (caret/E) determines whether or not the P
|
|||
|
command (and related operations) append a form feed to
|
|||
|
the contents of the buffer on output. If ^E is -1, a
|
|||
|
form feed is appended; if ^E is 0, no form feed is
|
|||
|
appended.
|
|||
|
|
|||
|
Each time text is read into the text buffer TECO sets
|
|||
|
the ^E flag. If the text read terminated due to a form
|
|||
|
feed (i.e., if the text buffer was loaded with a
|
|||
|
"complete page"), ^E is set to -1. If the text read
|
|||
|
terminated because the buffer was filled to capacity
|
|||
|
before a form feed was encountered or because there was
|
|||
|
no form feed (i.e., the text buffer was not loaded with
|
|||
|
a "complete page"), ^E is set to 0.
|
|||
|
|
|||
|
In TECO-11, you can set the ^E flag's value directly,
|
|||
|
overriding the value set by the most recent buffer
|
|||
|
read. Be sure to use only values of 0 or -1; other
|
|||
|
values may cause unpredictable results.
|
|||
|
|
|||
|
^F <CTRL/F> (caret/F) is equivalent to the current value
|
|||
|
of the console switch register.
|
|||
|
|
|||
|
Standard TECO PAGE 91
|
|||
|
Special Numeric Values
|
|||
|
|
|||
|
|
|||
|
n^F n<CTRL/F> is the terminal number plus 200000 (octal)
|
|||
|
for job n's terminal. -1^F is the terminal number plus
|
|||
|
200000 (octal) for your job's terminal. The result is
|
|||
|
0 if the specified job is detached or if there is no
|
|||
|
such job.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
^H <CTRL/H> (caret/H) is equivalent to the current time of
|
|||
|
day via the following equations:
|
|||
|
|
|||
|
OS/8: ^H = 0
|
|||
|
RT-11: ^H = (seconds since midnight)/2
|
|||
|
RSTS/E: ^H = minutes until midnight
|
|||
|
RSX-11: ^H = (seconds since midnight)/2
|
|||
|
VAX/VMS: ^H = (seconds since midnight)/2
|
|||
|
TOPS-10: ^H = 60ths of a second since midnight
|
|||
|
(or 50ths of a second where 50 Hz power is used)
|
|||
|
|
|||
|
^N <CTRL/N> (caret/N) is the end of file flag. It is
|
|||
|
equivalent to -1 if the file open on the currently
|
|||
|
selected input stream is at end of file, and zero
|
|||
|
otherwise.
|
|||
|
|
|||
|
^S <CTRL/S> (caret/S) is equivalent to the negative of the
|
|||
|
length of the last insert, string found, or string
|
|||
|
inserted with a "G" command, whichever occurred last.
|
|||
|
To back up the pointer to the start of the last insert,
|
|||
|
string found, etc., type "^SC".
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
^T <CTRL/T> (caret/T) is equivalent to the ASCII code for
|
|||
|
the next character typed at the terminal. Every ^T
|
|||
|
command executed causes TECO to pause and accept one
|
|||
|
character typed at the terminal. See the ET flag
|
|||
|
description (section 5.16) for variations.
|
|||
|
|
|||
|
:^T Reads and decodes the next keystroke typed at the
|
|||
|
terminal. The decoded keystroke is returned in a
|
|||
|
manner similar to that used for immediate ESCape
|
|||
|
sequence commands (see section 4.4), i.e., via <type>
|
|||
|
and <value> codes, as follows:
|
|||
|
<type> 0 Normal character,
|
|||
|
<value> is ASCII value
|
|||
|
|
|||
|
<type> 1 Control character
|
|||
|
(except ESCape or CSI);
|
|||
|
<value> is ASCII value of
|
|||
|
control char.
|
|||
|
A typed <CR> yields
|
|||
|
<type> 1 <value> 13,
|
|||
|
and subsequent ^T or :^T
|
|||
|
does not return a <LF>.
|
|||
|
|
|||
|
Standard TECO PAGE 92
|
|||
|
Special Numeric Values
|
|||
|
|
|||
|
|
|||
|
<type> 2 Same as immed ESC seq <type> 0
|
|||
|
<type> 3 Same as immed ESC seq <type> 1
|
|||
|
<type> 4 Same as immed ESC seq <type> 2
|
|||
|
<type> 5 Same as immed ESC seq <type> 3
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
^Y <CTRL/Y> (caret/Y) is equivalent to ".+^S,.", the n,m
|
|||
|
numeric argument spanning the text just searched for or
|
|||
|
inserted. This value may be used to recover from
|
|||
|
inserting a string in the wrong place. Type "^YXSFR`"
|
|||
|
to store the string in Q-register S and remove it from
|
|||
|
the buffer. You can then position the pointer to the
|
|||
|
right place and type "GS" to insert the string.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
^Z <CTRL/Z> (caret/Z) is equivalent to the total space
|
|||
|
occupied by text in the Q-registers (including the
|
|||
|
command line currently being executed).
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
^^x The combination of the Control-caret (double caret or
|
|||
|
double up-arrow) followed by any character is
|
|||
|
equivalent to the value of the ASCII code for that
|
|||
|
character. The "x" in this example may be any
|
|||
|
character that can be typed in to TECO.
|
|||
|
|
|||
|
Standard TECO PAGE 93
|
|||
|
Special Numeric Values
|
|||
|
|
|||
|
|
|||
|
MODE CONTROL FLAGS
|
|||
|
|
|||
|
The following mode control flags return numeric values. The use
|
|||
|
of these flags is described below in section 5.16.
|
|||
|
|
|||
|
ED Equivalent to the current value of the edit level flag.
|
|||
|
|
|||
|
EH Equivalent to the current value of the help level flag.
|
|||
|
|
|||
|
EO Equivalent to the version number of the version of TECO
|
|||
|
which is currently being run. This manual describes
|
|||
|
TECO-11 Version 40, TECO-8 Version 7, and TECO-10
|
|||
|
Version 3.
|
|||
|
|
|||
|
ES Equivalent to the current value of the search
|
|||
|
verification flag.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
ET Equivalent to the current value of the type out control
|
|||
|
flag.
|
|||
|
|
|||
|
EU Equivalent to the current value of the upper/lower case
|
|||
|
flag.
|
|||
|
|
|||
|
EV Equivalent to the current value of the edit verify
|
|||
|
flag.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
^X <CTRL/X> (caret/X) is equivalent to the current value
|
|||
|
of the search mode flag.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
Standard TECO PAGE 94
|
|||
|
Command Loops
|
|||
|
|
|||
|
|
|||
|
5.12 COMMAND LOOPS
|
|||
|
|
|||
|
You can cause a command string to be executed any number of times
|
|||
|
by placing the command string within angle brackets and preceding
|
|||
|
the brackets with a numeric argument designating the number of
|
|||
|
iterations. Iterated command strings are called command loops.
|
|||
|
Loops may be nested so that one command loop contains another
|
|||
|
command loop, which, in turn, contains other command loops, and
|
|||
|
so on. The maximum depth to which command loops may be nested is
|
|||
|
determined by the size of TECO's push-down list (system
|
|||
|
dependent), but is always greater than 10.
|
|||
|
|
|||
|
The general form of the command loop is:
|
|||
|
|
|||
|
n<command string>
|
|||
|
|
|||
|
where "command string" is the sequence of commands to be iterated
|
|||
|
and n is the number of iterations. If n is not supplied then no
|
|||
|
limit is placed on the number of iterations. If n is 0 or less
|
|||
|
than 0 then the iteration is not executed at all; command
|
|||
|
control skips to the closing angle bracket. If n is greater than
|
|||
|
0, then the iteration is performed n times.
|
|||
|
|
|||
|
Search commands inside command loops are treated specially. If a
|
|||
|
search command which is not preceded by a colon modifier is
|
|||
|
executed within a command loop and the search fails, a warning
|
|||
|
message is printed [on TECO-11], the command loop is exited
|
|||
|
immediately and the command following the right angle bracket of
|
|||
|
the loop is the next command to be executed. If an unmodified
|
|||
|
search command in a command loop is immediately followed by a
|
|||
|
semicolon, it is treated as if it were a colon-modified search
|
|||
|
(see section 5.13).
|
|||
|
|
|||
|
Standard TECO PAGE 95
|
|||
|
Branching Commands
|
|||
|
|
|||
|
|
|||
|
5.13 BRANCHING COMMANDS
|
|||
|
|
|||
|
TECO provides an unconditional branch command and a set of
|
|||
|
conditional execution commands. To branch within a command
|
|||
|
string, you must be able to name locations inside the string.
|
|||
|
TECO permits location tags of the form:
|
|||
|
|
|||
|
!tag!
|
|||
|
|
|||
|
to be placed between any two commands in a command string. The
|
|||
|
name "tag" will be associated with this location when the command
|
|||
|
string is executed. Tags may contain any number of ASCII
|
|||
|
characters and any character except an exclamation mark. (When
|
|||
|
using the @ form of this command, any character except the
|
|||
|
delimiter is legal.) Since tags are ignored by TECO except when a
|
|||
|
branch command references the tagged location, they may also be
|
|||
|
used as comments within complicated command strings.
|
|||
|
|
|||
|
The unconditional branch command is the O command which has the
|
|||
|
form:
|
|||
|
|
|||
|
Otag`
|
|||
|
|
|||
|
where "tag" is a location named elsewhere in the command string
|
|||
|
and "`" signifies a <DELIM>. When an O command is executed, the
|
|||
|
next command to be executed will be the one that follows the tag
|
|||
|
referenced by the O command. Command execution continues
|
|||
|
normally from this point.
|
|||
|
|
|||
|
Use of the O command is subject to two restrictions. First, if
|
|||
|
an O command is stored in a Q-register as part of a command
|
|||
|
string which is to be executed by an M command, the tag
|
|||
|
referenced by the O command must reside in the same Q-register.
|
|||
|
|
|||
|
Second, an O command which is inside a command loop may not
|
|||
|
branch to a tagged location preceding the command loop. However,
|
|||
|
it is always possible to branch out of a command loop to a
|
|||
|
location which follows the command loop and then branch to the
|
|||
|
desired tag.
|
|||
|
|
|||
|
The string argument in the O command has the same format as the
|
|||
|
string arguments in the search and E commands. String build
|
|||
|
characters such as ^EQq can be embedded within the string in
|
|||
|
TECO-11. Also, in TECO-11 and TECO-10, the O command may be
|
|||
|
@-sign modified. In that case, the syntax of the command would
|
|||
|
be @O/tag/ where / represents any delimiting character that does
|
|||
|
not appear within the tag.
|
|||
|
|
|||
|
Branching into a conditional poses no problems, but branching
|
|||
|
into a command loop will causes unpredictable results.
|
|||
|
|
|||
|
Although tags may contain any sequence of ASCII characters, good
|
|||
|
programming practice dictates that tags should not contain
|
|||
|
|
|||
|
Standard TECO PAGE 96
|
|||
|
Branching Commands
|
|||
|
|
|||
|
|
|||
|
unusual characters (such as space, comma, ESCAPE, etc.) and that
|
|||
|
they should be mnemonic for the piece of code to which they
|
|||
|
refer.
|
|||
|
|
|||
|
There are many other branching commands. Most of these are
|
|||
|
considerably faster than the O command and should be used
|
|||
|
wherever convenient. They are all described in the table below.
|
|||
|
|
|||
|
TABLE 5-13: BRANCHING COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
Otag` This command causes TECO to branch to the first
|
|||
|
occurrence of the specified label (tag) in the current
|
|||
|
macro level. In TECO-8 and TECO-11, branching to the
|
|||
|
left of the start of the current iteration is not
|
|||
|
permitted, and this command will only look for an
|
|||
|
occurrence of the specified tag following the < of the
|
|||
|
current iteration, if you are in an iteration. In any
|
|||
|
case, branching out of an iteration is poor programming
|
|||
|
practice. Command execution resumes at the first
|
|||
|
character after the delimiter terminating the specified
|
|||
|
tag. Using this syntax, any character except <ESC> is
|
|||
|
permitted in the tag specification. The usual string
|
|||
|
build characters are permitted when specifying the tag.
|
|||
|
|
|||
|
@O/tag/ Equivalent to Otag` except that a delimiter (shown here
|
|||
|
as /) is used before and after the specified tag. Any
|
|||
|
character other than that delimiter is permitted inside
|
|||
|
the tag. The usual string build characters are
|
|||
|
permitted when specifying the tag.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
nOtag0,tag1,tag2,...`
|
|||
|
This command causes TECO to branch to the tag specified
|
|||
|
by the nth tag in the accompanying list. The string
|
|||
|
argument to this command consists of a sequence of tags
|
|||
|
separated by commas. The tags may contain any
|
|||
|
characters other than comma or <ESC>; however, good
|
|||
|
programming practice suggests that the tags should
|
|||
|
consist only of letters and digits. There must be no
|
|||
|
intervening spaces since these would be considered part
|
|||
|
of the tag. If n is out of range, or if n selects a
|
|||
|
null tag, then command execution continues with the
|
|||
|
first command following the <DELIM> that delimits this
|
|||
|
command. (A null tag would be signified in the list by
|
|||
|
two adjacent commas.)
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
n@O/tag0,tag1,tag2,.../
|
|||
|
Same as the preceding command except that the list of
|
|||
|
tags is bracketed by a delimiter shown here as "/".
|
|||
|
The delimiter can be any character that does not appear
|
|||
|
|
|||
|
Standard TECO PAGE 97
|
|||
|
Branching Commands
|
|||
|
|
|||
|
|
|||
|
within the list of tags. In particular, using comma
|
|||
|
for the delimiter would not be very useful.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
; This command causes TECO to branch out of the current
|
|||
|
iteration, if the immediately preceding search (or
|
|||
|
search and replace) command failed. In that case,
|
|||
|
control resumes at the character following the matching
|
|||
|
> at the end of the current iteration. On the other
|
|||
|
hand, if the preceding search succeeded, command
|
|||
|
execution continues with the character following the ;.
|
|||
|
If this command is encountered from outside of an
|
|||
|
iteration (in the current macro level), then the ?SNI
|
|||
|
error message is issued.
|
|||
|
|
|||
|
n; This command causes TECO to branch out of the current
|
|||
|
iteration if the value of n is greater than or equal to
|
|||
|
0. In that case, command execution resumes at the
|
|||
|
character following the matching > at the end of the
|
|||
|
current iteration. On the other hand, if n is less
|
|||
|
than 0, command execution continues with the character
|
|||
|
following the ;. If this command is encountered from
|
|||
|
outside of an iteration (in the current macro level),
|
|||
|
then the ?SNI error message is issued.
|
|||
|
|
|||
|
:; This command causes TECO to branch out of the current
|
|||
|
iteration if the immediately preceding search (or
|
|||
|
search and replace) command succeeded. In that case,
|
|||
|
control resumes at the character following the matching
|
|||
|
> at the end of the current iteration. On the other
|
|||
|
hand, if the preceding search failed, command execution
|
|||
|
continues with the character following the ;. If this
|
|||
|
command is encountered from outside of an iteration (in
|
|||
|
the current macro level), then the ?SNI error message
|
|||
|
is issued.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
n:; This command causes TECO to branch out of the current
|
|||
|
iteration if the value of n is less than 0. In that
|
|||
|
case, command execution resumes at the character
|
|||
|
following the matching > at the end of the current
|
|||
|
iteration. On the other hand, if n is greater than or
|
|||
|
equal to 0, command execution continues with the
|
|||
|
character following the ;. If this command is
|
|||
|
encountered from outside of an iteration (in the
|
|||
|
current macro level), then the ?SNI error message is
|
|||
|
issued.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
' This "command" is actually part of the syntax of TECO
|
|||
|
conditionals. It has no affect if "executed" other
|
|||
|
than to signify termination of the current conditional
|
|||
|
level. If an argument is specified to this command,
|
|||
|
|
|||
|
Standard TECO PAGE 98
|
|||
|
Branching Commands
|
|||
|
|
|||
|
|
|||
|
the result is not defined. (Arguments pass through
|
|||
|
this command on TECO-11.) Conditionals are described in
|
|||
|
section 5.14.
|
|||
|
|
|||
|
| This "command" is actually part of the syntax of TECO
|
|||
|
conditionals. If executed, it causes control to branch
|
|||
|
to the end of the conditional. Command execution
|
|||
|
resumes with the character following the ' that ends
|
|||
|
the current conditional with the ELSE clause being
|
|||
|
skipped.
|
|||
|
|
|||
|
> This "command" is actually part of the syntax of TECO
|
|||
|
iterations. If executed, it causes TECO to bump the
|
|||
|
current iteration count by 1 and test to see if the
|
|||
|
resulting count is equal to the maximum count permitted
|
|||
|
for the iteration (specified as an argument before the
|
|||
|
matching <). If the iteration count has not expired,
|
|||
|
then control returns to the command following the < at
|
|||
|
the beginning of the current iteration. If the
|
|||
|
iteration has expired, then command execution continues
|
|||
|
with the character following this >. If this command
|
|||
|
is encountered outside of an iteration (within the
|
|||
|
current macro level), then the ?BNI error message (or
|
|||
|
its equivalent) is issued.
|
|||
|
|
|||
|
F> This command causes TECO to branch (flow) to the end of
|
|||
|
the current iteration. TECO effectively resumes
|
|||
|
execution at the matching >. The iteration count is
|
|||
|
tested as usual. If it has not expired, control
|
|||
|
returns back to the start of the iteration with the
|
|||
|
count having been incremented by 1. If the count was
|
|||
|
up, the iteration is exited and control continues with
|
|||
|
the first command after the >. If this command is
|
|||
|
encountered outside of an iteration, it has the same
|
|||
|
effect as the <DELIM><DELIM> command.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
F< This command causes TECO to branch (flow) to the start
|
|||
|
of the current iteration. TECO effectively resumes
|
|||
|
execution at the first command following the < at the
|
|||
|
beginning of the current iteration. The iteration
|
|||
|
count is not affected. If this command is issued
|
|||
|
outside of an iteration, it causes TECO to branch back
|
|||
|
to the start of the current command string (in the
|
|||
|
current macro level).
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
F' This command causes TECO to branch (flow) to the end of
|
|||
|
the current conditional. TECO effectively resumes
|
|||
|
execution at the first command following the ' at the
|
|||
|
end of the current conditional. Numeric arguments are
|
|||
|
eaten up by this command. If this command is issued
|
|||
|
while not in a conditional, the ?MAP error (or its
|
|||
|
|
|||
|
Standard TECO PAGE 99
|
|||
|
Branching Commands
|
|||
|
|
|||
|
|
|||
|
equivalent) is issued.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
F| This command causes TECO to branch (flow) to the else
|
|||
|
clause of the current conditional. TECO effectively
|
|||
|
resumes execution at the first command following the |
|
|||
|
at the end of the current THEN clause. If the current
|
|||
|
conditional has no ELSE clause, or if an unmatched ' is
|
|||
|
encountered before an unmatched |, then control resumes
|
|||
|
at the command following the ' . Numeric arguments are
|
|||
|
eaten up by this command. If this command is issued
|
|||
|
while not in a conditional, the ?MAP error (or its
|
|||
|
equivalent) is issued. Well-structured programs should
|
|||
|
not need to use this command.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
$$ The <ESC><ESC> command causes TECO to exit from the
|
|||
|
current macro level. If this command is issued from
|
|||
|
top level (not from within a macro), then the command
|
|||
|
string execution is terminated and TECO returns to
|
|||
|
prompt level. Note that the second <ESC> must be a
|
|||
|
true ESCape and may not be a ^[. Also, note that both
|
|||
|
ESCapes must be true TECO commands and not part of the
|
|||
|
syntax of some previous command. That is, the first
|
|||
|
<ESC> does not count if it is the delimiting ESCape of
|
|||
|
a string. Finally, note that these must be real ESCape
|
|||
|
characters, and not the user-designated <DELIM>
|
|||
|
character (which TECO understands as an ESCape only
|
|||
|
when typed at the console).
|
|||
|
|
|||
|
n$$ This command causes TECO to exit from the current macro
|
|||
|
level, returning the number n as a value. This value
|
|||
|
will be used as the numeric argument to the first
|
|||
|
command following the macro call.
|
|||
|
|
|||
|
m,n$$ This command causes TECO to exit from the current macro
|
|||
|
level, returning the pair of values m and n as
|
|||
|
arguments to the first command following the macro
|
|||
|
call. Good programming practice dictates that all ways
|
|||
|
of exiting a macro return the same number of arguments.
|
|||
|
|
|||
|
^C The <CTRL/C> (Caret-C) command when executed as a TECO
|
|||
|
command, causes command execution to stop and control
|
|||
|
return to TECO's prompt. No clean-up of push-down
|
|||
|
lists, flag settings, etc. is done. This command lets
|
|||
|
a macro abort TECO's command execution.
|
|||
|
[On TECO-8 and TECO-10, this command causes control to
|
|||
|
return to the operating system.]
|
|||
|
[On TECO-11, this command returns to the operating
|
|||
|
system if executed from the top level.]
|
|||
|
Consult the appendices for specific details concerning
|
|||
|
your operating system.
|
|||
|
|
|||
|
Standard TECO PAGE 100
|
|||
|
Branching Commands
|
|||
|
|
|||
|
|
|||
|
^C<CTRL/C>
|
|||
|
This command causes TECO to unconditionally abort and
|
|||
|
control exits from TECO. Control returns to the
|
|||
|
operating system. The second <CTRL/C> must be a true
|
|||
|
<CTRL/C> and may not be a Caret-C.
|
|||
|
|
|||
|
Standard TECO PAGE 101
|
|||
|
Conditional Execution Commands
|
|||
|
|
|||
|
|
|||
|
5.14 CONDITIONAL EXECUTION COMMANDS
|
|||
|
|
|||
|
All conditonal execution commands are of the form:
|
|||
|
|
|||
|
n"X command-string '
|
|||
|
or
|
|||
|
n"X then-command-string | else-command-string '
|
|||
|
|
|||
|
In the first form of the command, "n" is a numeric argument on
|
|||
|
which the decision is based, "X" is any of the conditional
|
|||
|
execution commands listed in table 5-14, and "command string" is
|
|||
|
the command string which will be executed if the condition is
|
|||
|
satisfied. The numeric argument is separated from the
|
|||
|
conditional execution command by a double quote (") and the
|
|||
|
command string is terminated with an apostrophe ('). If the
|
|||
|
condition is not satisfied, the command string will not be
|
|||
|
executed; execution will continue with the first command after
|
|||
|
the apostrophe.
|
|||
|
|
|||
|
In the second form of the command, two command strings are
|
|||
|
specified. The first one is executed if the condition is
|
|||
|
satisfied and the second is executed if the condition is not
|
|||
|
satisfied. Only one of the command strings will be executed.
|
|||
|
After execution of the appropriate command string, control will
|
|||
|
continue with the first command after the apostrophe (unless the
|
|||
|
command string caused a branch out of the conditional to occur),
|
|||
|
since execution of the vertical bar command (|) causes TECO to
|
|||
|
scan to the next matching apostrophe.
|
|||
|
|
|||
|
Conditional commands are similar to the IF-THEN-ELSE constructs
|
|||
|
that you find in other structured programming languages, although
|
|||
|
none can match the brevity and elegance of TECO's implementation.
|
|||
|
Nonetheless, you must use these facilities wisely. Good
|
|||
|
programming practice dictates that a branch into the range of a
|
|||
|
conditional (from outside that range) should not occur.
|
|||
|
|
|||
|
Conditional execution commands may be nested in the same manner
|
|||
|
as iteration commands. That is, the command string which is to
|
|||
|
be executed if the condition on n is met may contain conditional
|
|||
|
execution commands, which may, in turn, contain further
|
|||
|
conditional execution commands.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-14: CONDITIONAL EXECUTION COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
n"A Execute the following command string if n equals the
|
|||
|
ASCII code for an alphabetic character (upper or lower
|
|||
|
case A to Z).
|
|||
|
|
|||
|
n"C Execute the following command string if n is the ASCII
|
|||
|
code of any character that is a symbol constituent.
|
|||
|
|
|||
|
Standard TECO PAGE 102
|
|||
|
Conditional Execution Commands
|
|||
|
|
|||
|
|
|||
|
This is usually one of the upper or lower case letters
|
|||
|
A to Z, one of the digits 0 to 9, or period, or dollar
|
|||
|
sign, but may include additional characters on some
|
|||
|
operating systems. Consult the appropriate appendix.
|
|||
|
|
|||
|
n"D Execute the following command string if n equals the
|
|||
|
ASCII code for a digit (0 to 9).
|
|||
|
|
|||
|
n"E Execute the following command string if n is equal to
|
|||
|
zero.
|
|||
|
|
|||
|
n"F Execute the following command string if n is FALSE.
|
|||
|
Equivalent to n"E.
|
|||
|
|
|||
|
n"G Execute the following command string if n is greater
|
|||
|
than zero.
|
|||
|
|
|||
|
n"L Execute the following command string if n is less than
|
|||
|
zero.
|
|||
|
|
|||
|
n"N Execute the following command string if n is not equal
|
|||
|
to zero.
|
|||
|
|
|||
|
n"R Execute the following command string if n equals the
|
|||
|
ASCII code for an alphanumeric (upper or lower case A
|
|||
|
to Z or 0 to 9).
|
|||
|
|
|||
|
n"S Execute the following command string if n is
|
|||
|
SUCCESSFUL. Equivalent to n"L.
|
|||
|
|
|||
|
n"T Execute the following command string if n is TRUE.
|
|||
|
Equivalent to n"L.
|
|||
|
|
|||
|
n"U Execute the following command string if n is
|
|||
|
UNSUCCESSFUL. Equivalent to n"E.
|
|||
|
|
|||
|
n"V Execute the following command string if n equals the
|
|||
|
ASCII code for a lower case alphabetic character (lower
|
|||
|
case A to Z).
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
n"W Execute the following command string if n equals the
|
|||
|
ASCII code for an upper case alphabetic character
|
|||
|
(upper case A to Z).
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
n"< Identical to n"L
|
|||
|
|
|||
|
n"> Identical to n"G
|
|||
|
|
|||
|
n"= Identical to n"E
|
|||
|
|
|||
|
Standard TECO PAGE 103
|
|||
|
Retrieving Environment Characteristics
|
|||
|
|
|||
|
|
|||
|
5.15 RETRIEVING ENVIRONMENT CHARACTERISTICS
|
|||
|
|
|||
|
The following TECO commands return values of interest to users
|
|||
|
who want information about their current job, the operating
|
|||
|
system, their terminal, etc.
|
|||
|
|
|||
|
All negative EJ commands return an operating system dependent
|
|||
|
value. Consult the appendices for operating system unique
|
|||
|
commands.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-15A: RETREIVING ENVIRONMENT CHARACTERISTICS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
-1EJ Return a number representing the computer and operating
|
|||
|
system upon which TECO is currently running. This
|
|||
|
value has the form 256m+n where m is a number
|
|||
|
representing the computer in use and n is a number
|
|||
|
representing the operating system that is running.
|
|||
|
Current values of m and n are:
|
|||
|
|
|||
|
Computer (m) Operating System (n)
|
|||
|
|
|||
|
0 PDP-11 0 RSX-11D
|
|||
|
1 RSX-11M
|
|||
|
2 RSX-11S
|
|||
|
3 IAS
|
|||
|
4 RSTS/E
|
|||
|
5 VAX/VMS
|
|||
|
(compatibility mode)
|
|||
|
6 RSX-11M+
|
|||
|
7 RT-11
|
|||
|
1 PDP-8 0 OS/8
|
|||
|
2 DEC-10 0 TOPS-10
|
|||
|
3 DEC-20 0 TOPS-20
|
|||
|
4 VAX-11 0 VAX/VMS
|
|||
|
(native mode)
|
|||
|
|
|||
|
0EJ Returns a value equal to your job number. On
|
|||
|
single-user systems, this is always a 0.
|
|||
|
|
|||
|
1EJ Returns a value equal to your console keyboard number
|
|||
|
(the keyboard you detached from if you are running
|
|||
|
detached). On single-terminal systems, this is always
|
|||
|
a 0.
|
|||
|
|
|||
|
2EJ Returns a value equal to your operating system's user
|
|||
|
identification number. This may be called your UIC,
|
|||
|
PPN, Group, etc. under various operating systems.
|
|||
|
Consult the appendices for more information.
|
|||
|
|
|||
|
Standard TECO PAGE 104
|
|||
|
Retrieving Environment Characteristics
|
|||
|
|
|||
|
|
|||
|
TABLE 5-15B: SETTING ENVIRONMENT INFORMATION
|
|||
|
|
|||
|
n,1EJ Set the terminal number to receive output. This will
|
|||
|
not affect terminal input. Your job will remain
|
|||
|
attached to, or detached from, your terminal, whichever
|
|||
|
it was before. Output will only occur if the specified
|
|||
|
terminal is ASSIGNed with a monitor ASSIGN command (you
|
|||
|
may ^C, issue that command and continue) and if your
|
|||
|
job has POKE privileges. This command also sets the
|
|||
|
terminal to be reattached if the set detach flag
|
|||
|
(64&ET) is cleared. The reattaching operation requires
|
|||
|
[1,2] or JACCT privileges.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
n,2EJ Sets your [p,pn] to n where n has the same format as
|
|||
|
the number returned by the 2EJ command. Issuance of
|
|||
|
this command requires the appropriate privileges.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
Standard TECO PAGE 105
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
5.16 MODE CONTROL FLAGS
|
|||
|
|
|||
|
TECO has flags which control various aspects of its operation.
|
|||
|
You can find a flag's current setting by executing its command
|
|||
|
name without an argument; the current setting of the flag is
|
|||
|
returned as a value. A flag may be set to a specific value by
|
|||
|
executing its command name preceded by a numerical argument; the
|
|||
|
flag is set to the value of the argument.
|
|||
|
|
|||
|
The following table describes the commands that set and clear
|
|||
|
flags; <flag> represents any of the flags listed below.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-16A: FLAG MANIPULATION COMMANDS
|
|||
|
|
|||
|
<flag> Return value of flag.
|
|||
|
|
|||
|
n<flag> Set value of flag to n.
|
|||
|
|
|||
|
m,n<flag> In the flag, turn off those bits specified by m
|
|||
|
and turn on those bits specified by n.
|
|||
|
|
|||
|
0,n<flag> Turn on the bits in the flag specified by n.
|
|||
|
|
|||
|
m,0<flag> Turn off the bits in the flag specified by m.
|
|||
|
|
|||
|
|
|||
|
The flags have the following functions:
|
|||
|
|
|||
|
|
|||
|
TABLE 5-16B: MODE CONTROL FLAGS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
ED The edit level flag, a bit-encoded word that controls
|
|||
|
TECO's behavior in various respects. Any combination
|
|||
|
of the individual bits may be set as the user sees fit.
|
|||
|
The bits have the following functions:
|
|||
|
|
|||
|
ED&1 Allow caret (^) in search strings. If this
|
|||
|
bit is clear, a caret (^) in a search string
|
|||
|
modifies the immediately following character
|
|||
|
to become a control character. When this bit
|
|||
|
is set, a caret in a search string is simply
|
|||
|
the literal character caret. If you are
|
|||
|
editing a file that contains many caret
|
|||
|
characters (e.g., a RUNOFF file with case
|
|||
|
control), you will want to set this bit.
|
|||
|
(For control of upper/lower case matching in
|
|||
|
search strings, see the ^X flag.)
|
|||
|
|
|||
|
ED&2 Allow all Y and _ commands. If this bit is
|
|||
|
set, the Y (Yank) command and _ (underscore
|
|||
|
|
|||
|
Standard TECO PAGE 106
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
or backarrow) command work unconditionally as
|
|||
|
described earlier in the manual. If clear,
|
|||
|
the behavior of the Y and _ commands are
|
|||
|
modified as follows: If an output file is
|
|||
|
open and text exists in the text buffer, the
|
|||
|
Y or _ command will produce an error message
|
|||
|
and the command will be aborted leaving the
|
|||
|
text buffer unchanged. Note that if no
|
|||
|
output file is open the Y and _ commands act
|
|||
|
normally. Furthermore, if the text buffer is
|
|||
|
empty the Y command can be used to bring in a
|
|||
|
page of text whether or not an output file is
|
|||
|
open (HKY will always work). The _ command
|
|||
|
will succeed in bringing one page of text
|
|||
|
into an empty text buffer but will fail to
|
|||
|
bring in successive pages if an output file
|
|||
|
is open.
|
|||
|
|
|||
|
ED&4 When this bit is clear, TECO will try to
|
|||
|
expand memory as much as it can in order to
|
|||
|
try to fit entire pages into memory when
|
|||
|
requested to do so. If this bit is set,
|
|||
|
arbitrary memory expansion will not occur.
|
|||
|
In that case, TECO will expand memory only on
|
|||
|
the A command and not on the Y, P, or N
|
|||
|
commands. This bit is always set in TECO-10
|
|||
|
and has no significance in TECO-8 or in
|
|||
|
TECO-11 on RT-11.
|
|||
|
|
|||
|
ED&8 Reserved for future use by TECO-8.
|
|||
|
|
|||
|
ED&16 Allow failing searches to preserve dot. If
|
|||
|
this bit is set, then whenever a search
|
|||
|
fails, the original location of the text
|
|||
|
buffer pointer will be preserved. If this
|
|||
|
bit is clear, then failing searches (other
|
|||
|
than bounded searches) leave the text buffer
|
|||
|
pointer at pointer position 0 after they
|
|||
|
fail.
|
|||
|
[not in TECO-8]
|
|||
|
|
|||
|
ED&32 Enable immediate ESCape-sequence commands.
|
|||
|
If this bit is set, TECO will recognize an
|
|||
|
ESCape-sequence key pressed immediately after
|
|||
|
the prompting asterisk as an immediate
|
|||
|
command. See section 4.4 for a description
|
|||
|
of immediate ESCape-sequence commands.
|
|||
|
|
|||
|
If this bit is clear (the default case), TECO
|
|||
|
will treat an ESCape coming in immediately
|
|||
|
after the asterisk prompt as a <DELIM> That
|
|||
|
is, TECO will hear a discrete <ESC>
|
|||
|
character: an ESCape sequence will therefore
|
|||
|
|
|||
|
Standard TECO PAGE 107
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
be treated not as a unified command, but as a
|
|||
|
sequence of characters.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
ED&64 Only move dot by one on multiple occurrence
|
|||
|
searches. If this bit is clear, TECO treats
|
|||
|
nStext` exactly as n<1Stext`>. That is, skip
|
|||
|
over the whole matched search string when
|
|||
|
proceeding to the nth search match. For
|
|||
|
example, if the text buffer contains only
|
|||
|
A's, the command 5SAA` will complete with dot
|
|||
|
equal to ten (10). If this bit is set, TECO
|
|||
|
increments dot by one each search match. In
|
|||
|
the above example, dot would become five (5).
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
ED&128 Automatic refresh inhibit. If scroll mode is
|
|||
|
enabled (that is, if 7:W is non-zero), TECO
|
|||
|
normally refreshes the text buffer display
|
|||
|
just before printing its * prompt. Setting
|
|||
|
the 128 bit in ED inhibits this automatic
|
|||
|
refresh. (Inhibiting the automatic refresh
|
|||
|
may be useful when running over a slow
|
|||
|
terminal line; see also the ^W immediate
|
|||
|
command.)
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
The initial value of ED&1 is system dependent (See
|
|||
|
appendices). The initial value of the other bits in
|
|||
|
the ED flag is 0.
|
|||
|
|
|||
|
EE This flag is initially zero, and (unless the 8192 ET
|
|||
|
bit is set) TECO recognizes only the ESCape as its
|
|||
|
<DELIM> character from the console. If it is desired
|
|||
|
to use another character as an ESCape surrogate (as
|
|||
|
when working from a terminal lacking an ESCape key),
|
|||
|
the ASCII value of that other character may be set in
|
|||
|
the EE flag. Note that when an ESCape surrogate is
|
|||
|
set, the designated character (when typed at the
|
|||
|
console) is received by TECO as an ESCape -- that
|
|||
|
character is no longer directly available at the
|
|||
|
keyboard. When an ESCape surrogate is active, an
|
|||
|
ESCape received by TECO echos as accent grave; when
|
|||
|
none is active, an ESCape received by TECO echos as
|
|||
|
dollar sign. This feature is provided for the benefit
|
|||
|
of newer terminals which lack an ESCape key. (8192ET
|
|||
|
and 96EE both set ` as ESCape surrogate. EE, however,
|
|||
|
can be used to designate a character other than accent
|
|||
|
grave.)
|
|||
|
[RSTS/E only]
|
|||
|
|
|||
|
EH The help level flag, which controls the printing of
|
|||
|
error messages and failed commands. (See also the /
|
|||
|
|
|||
|
Standard TECO PAGE 108
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
command.)
|
|||
|
|
|||
|
EH&3 The low two bits of EH (value range 0 through
|
|||
|
3) control the printing of TECO error
|
|||
|
messages as follows (assuming the low two
|
|||
|
bits have value m):
|
|||
|
|
|||
|
If m is equal to 1, error messages are output
|
|||
|
in abbreviated form ("?XXX"). If m is equal
|
|||
|
to 2, error messages are output in normal
|
|||
|
form ("?XXX Message"). If m is equal to 3,
|
|||
|
error messages are output in long or "War and
|
|||
|
Peace" form, that is, a paragraph of
|
|||
|
informative material is typed following the
|
|||
|
normal form of the error message. In
|
|||
|
TECO-11, m=3 is implemented only on VAX/VMS.
|
|||
|
(See section G.13 for a description of HELP
|
|||
|
facilities available on VAX/VMS.) In other
|
|||
|
TECO-11's, case m=3 is equivalent to m=2.
|
|||
|
|
|||
|
EH&4 If this bit of EH is set, the failing command
|
|||
|
is also output up to and including the
|
|||
|
failing character in the command followed by
|
|||
|
a question mark. (Just like TECO's response
|
|||
|
to the typing of a question mark immediately
|
|||
|
after an error.) This bit is not supported by
|
|||
|
TECO-10.
|
|||
|
|
|||
|
The initial value of the EH flag is 0 which is
|
|||
|
equivalent to a value of 2.
|
|||
|
|
|||
|
EO Setting the value of the EO flag to n allows features
|
|||
|
that were peculiar to that version of TECO to work.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
ES The search verification flag, which controls the text
|
|||
|
typed out after searches.
|
|||
|
|
|||
|
If n is equal to 0, nothing is typed out after
|
|||
|
searches. If n is -1, the current line is typed out
|
|||
|
when a successful search at top level is completed
|
|||
|
(i.e., a V command is done automatically). If n is
|
|||
|
between 1 and 31, the current line is typed out with a
|
|||
|
line feed immediately following the position of the
|
|||
|
pointer to identify its position. If n is between 32
|
|||
|
and 126, the current line is typed out with the ASCII
|
|||
|
character corresponding to the value of n immediately
|
|||
|
following the position of the pointer to identify its
|
|||
|
position. If you want to see more than one line of
|
|||
|
type out, use the form m*256+n. The n is the same as
|
|||
|
above. The m is the number of lines of view. For
|
|||
|
example, 3*256+^^! would give two lines on either side
|
|||
|
of the found line, and the found line with the
|
|||
|
|
|||
|
Standard TECO PAGE 109
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
character "!" at the pointer's position. The ES flag
|
|||
|
does not apply to searches executed inside iterations
|
|||
|
or macros; lines found inside iterations or macros are
|
|||
|
never typed out.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
The initial value of ES is 0.
|
|||
|
|
|||
|
ET The ET flag is a bit-encoded word controlling TECO's
|
|||
|
treatment of the console terminal. Any combination of
|
|||
|
the individual bits may be set. The bits provide the
|
|||
|
following functions, when set:
|
|||
|
|
|||
|
ET&1 Type out in image mode. Setting this bit
|
|||
|
inhibits all of TECO's type out conversions.
|
|||
|
All characters are output to the terminal
|
|||
|
exactly as they appear in the buffer or ^A
|
|||
|
command. For example, the changing of
|
|||
|
control characters into the "caret/character"
|
|||
|
form, and the conversion of <ESCAPE> to `
|
|||
|
(accent grave) or to $ (dollar sign) are
|
|||
|
suppressed. This mode is useful for driving
|
|||
|
displays. It should be used with caution,
|
|||
|
especially if you are talking to TECO over a
|
|||
|
dial-up line.
|
|||
|
|
|||
|
ET&2 Process DELETEs and <CTRL/U>s in "scope"
|
|||
|
mode. Scope mode processing uses the cursor
|
|||
|
control features of CRT type terminals to
|
|||
|
handle character deletion by actually erasing
|
|||
|
characters from the screen.
|
|||
|
|
|||
|
ET&4 Read lower case. TECO normally converts all
|
|||
|
lower case alphabetics to upper case on
|
|||
|
input. Setting this bit causes lower case
|
|||
|
alphabetics to be input as lower case. TECO
|
|||
|
commands and file specifiers may be typed in
|
|||
|
either upper or lower case. For the purpose
|
|||
|
of searches, however, upper and lower case
|
|||
|
may be treated as different characters. (See
|
|||
|
^X flag).
|
|||
|
|
|||
|
ET&8 Read without echo for ^T commands. This
|
|||
|
allows data to be read by the ^T command
|
|||
|
without having the characters echo at the
|
|||
|
terminal. Normal command input to TECO will
|
|||
|
echo.
|
|||
|
|
|||
|
ET&16 Cancel <CTRL/O> on type out. Setting this
|
|||
|
bit will cancel any outstanding <CTRL/O> when
|
|||
|
the next type out occurs. After TECO has
|
|||
|
canceled the <CTRL/O>, it will automatically
|
|||
|
clear the bit.
|
|||
|
|
|||
|
Standard TECO PAGE 110
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
ET&32 Read with no wait. This enables the ^T
|
|||
|
command to test if a character is available
|
|||
|
at the user terminal. If a character has
|
|||
|
been typed, ^T returns the value of the
|
|||
|
character as always. If no character has
|
|||
|
been typed, ^T immediately returns a value of
|
|||
|
-1 and execution continues without waiting
|
|||
|
for a character.
|
|||
|
|
|||
|
ET&64 Detach flag (See appendices).
|
|||
|
|
|||
|
ET&128 "Abort-on-error" bit. Initially set, when
|
|||
|
TECO starts up; cleared each time TECO
|
|||
|
issues its asterisk prompt. When this bit is
|
|||
|
set: 1) all informational messages are
|
|||
|
supressed, 2) any <CTRL/C> causes the
|
|||
|
immediate termination of TECO, and 3) any
|
|||
|
error causes the termination of TECO after
|
|||
|
the error message is printed.
|
|||
|
|
|||
|
ET&256 If this bit is set, all lines output to the
|
|||
|
terminal are truncated to the terminal's
|
|||
|
width if needed. (RSTS/E, RSX-11, and
|
|||
|
VAX/VMS only. On VAX/VMS, this bit reflects
|
|||
|
and can change the state of the terminal
|
|||
|
characteristic WRAP/NOWRAP; TECO restores
|
|||
|
the terminal characteristic to its original
|
|||
|
state upon exit.)
|
|||
|
|
|||
|
ET&512 If this bit is set, the scope "WATCH" feature
|
|||
|
of TECO is present and your terminal is a
|
|||
|
scope type terminal. This bit is a read-only
|
|||
|
bit; its state cannot be altered. (See
|
|||
|
Section 5.17.)
|
|||
|
|
|||
|
ET&1024 If this bit is set, the refresh scope "WATCH"
|
|||
|
feature of TECO is present and a refresh
|
|||
|
scope is available. This bit is a read-only
|
|||
|
bit; its state cannot be altered. (See
|
|||
|
Section 5.17.)
|
|||
|
|
|||
|
ET&4096 This bit reflects and can change the state of
|
|||
|
the terminal characteristic (maintained by
|
|||
|
the operating system) recording whether the
|
|||
|
terminal is capable of handling eight-bit
|
|||
|
character codes. Upon entry to TECO, this
|
|||
|
bit reflects the characteristic as recorded
|
|||
|
with the operating system at that time. If
|
|||
|
you change this bit, the operating system is
|
|||
|
directed to change its recording of the
|
|||
|
characteristic to match.
|
|||
|
|
|||
|
Because the data manipulated (edited) by TECO
|
|||
|
|
|||
|
Standard TECO PAGE 111
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
can consist of all 256 possible byte codes,
|
|||
|
the way data characters are displayed (typed
|
|||
|
out) at the console varies depending upon the
|
|||
|
setting of the 4096 ET bit.
|
|||
|
|
|||
|
If the bit is clear (meaning that TECO
|
|||
|
understands your terminal to be 7-bit), valid
|
|||
|
DEC multi-national codes are typed out as
|
|||
|
<xy> (where xy is the corresponding LK201
|
|||
|
keyboard compose sequence).
|
|||
|
|
|||
|
If the bit is set (meaning that TECO
|
|||
|
understands your terminal to be 8-bit), valid
|
|||
|
DEC multi-national codes are typed out as
|
|||
|
themselves.
|
|||
|
|
|||
|
In either case, unprintable or illegal codes
|
|||
|
in the 128 to 255 range are typed out as [ab]
|
|||
|
(where ab is the corresponding hexadecimal
|
|||
|
code). The scope watch feature (screen
|
|||
|
buffer display, controlled by the W commands)
|
|||
|
always uses the <xy> and [ab] notations.
|
|||
|
|
|||
|
ET&8192 Accent grave as ESCape surrogate.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
If this bit is set, TECO recognizes the `
|
|||
|
(accent grave) character as an ESCAPE
|
|||
|
surrogate. That is, an ` character typed at
|
|||
|
the console will be recognized as a command
|
|||
|
<DELIM> character, and passed to TECO as an
|
|||
|
ESCape. (This interpretation applies only to
|
|||
|
<DELIM>s typed at the console; ESCape
|
|||
|
characters must still be used in macros and
|
|||
|
indirect files.) When an ESCape surrogate is
|
|||
|
set, an ESCape received by TECO echos as
|
|||
|
accent grave; when none is set, an ESCape
|
|||
|
received by TECO echos as dollar sign. This
|
|||
|
feature is provided for the benefit of
|
|||
|
certain newer terminals which lack an ESCape
|
|||
|
key. (See also the Introduction, and the EE
|
|||
|
flag.)
|
|||
|
|
|||
|
ET&32768 If this bit is set and a <CTRL/C> is typed,
|
|||
|
the bit is turned off, but execution of the
|
|||
|
current command string is allowed to
|
|||
|
continue. This allows a TECO macro to detect
|
|||
|
typed <CTRL/C>s.
|
|||
|
In TECO-8, this bit is the 2048's bit rather
|
|||
|
than the 32768's bit.
|
|||
|
|
|||
|
The initial setting of ET is operating system dependent
|
|||
|
(See appendices). In addition, some of the ET bits are
|
|||
|
|
|||
|
Standard TECO PAGE 112
|
|||
|
Mode Control Flags
|
|||
|
|
|||
|
|
|||
|
automatically turned off by certain error conditions.
|
|||
|
|
|||
|
EU The upper/lower case flag.
|
|||
|
|
|||
|
If n is -1, no case flagging of any type is performed
|
|||
|
on type out, lower case characters are output as lower
|
|||
|
case characters. If n is 0, lower case characters are
|
|||
|
flagged by outputting a ' (quote) before the lower case
|
|||
|
character and the lower case character is output in
|
|||
|
upper case; upper case characters are unchanged. If n
|
|||
|
is +1, upper case characters are flagged by outputting
|
|||
|
a ' (quote) before each one and then the upper case
|
|||
|
character is output; lower case characters are output
|
|||
|
as their upper case equivalents.
|
|||
|
|
|||
|
The initial value of the EU flag is -1 if TECO can tell
|
|||
|
from the operating system that the user's terminal
|
|||
|
supports display of lower case characters; otherwise
|
|||
|
te initial value is 0. Consult the appendices for more
|
|||
|
details.
|
|||
|
|
|||
|
EV The edit verify flag is decoded just like the ES flag.
|
|||
|
Just before TECO prints its prompting *, the EV flag is
|
|||
|
checked. If it is non-zero the lines to be viewed are
|
|||
|
printed on the terminal.
|
|||
|
|
|||
|
The initial value of the EV flag is 0.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
^X The search mode flag.
|
|||
|
[Not in TECO-8]
|
|||
|
|
|||
|
If ^X is 0, the text argument in a search command will
|
|||
|
match text in the text buffer independent of case in
|
|||
|
either the search argument or the text buffer. The
|
|||
|
lower case alphabetics match the upper case
|
|||
|
alphabetics, and "`", "{", "|", "}", "~" match "@",
|
|||
|
"[", "\", "]", "^" respectively. In addition, DEC
|
|||
|
multinational characters having diacritical marks are
|
|||
|
regarded as matching the corresponding characters
|
|||
|
without diacritical marks.
|
|||
|
|
|||
|
If ^X is -1, the search will succeed only if the text
|
|||
|
argument is identical to text in the text buffer.
|
|||
|
(This means that lower case does NOT match upper case,
|
|||
|
nor does a character having a diacritical mark match
|
|||
|
one without).
|
|||
|
|
|||
|
The initial value of the ^X flag is 0. (For control of
|
|||
|
caret or uparrow treatment in search strings, see the
|
|||
|
ED&1 bit above.)
|
|||
|
|
|||
|
Standard TECO PAGE 113
|
|||
|
Scope Commands
|
|||
|
|
|||
|
|
|||
|
5.17 SCOPE COMMANDS
|
|||
|
|
|||
|
The W command (scope "WATCH") is present in most implementations
|
|||
|
of TECO. There are two different variations of the W command.
|
|||
|
Neither, one, or both may be present. ET flag Bits 9 and 10
|
|||
|
indicate which variation(s) are configured and can be used.
|
|||
|
|
|||
|
|
|||
|
5.17.1 Video Terminal Scope Commands
|
|||
|
|
|||
|
If the VT support is present and your terminal is a video
|
|||
|
terminal (such as a VT05, VT52, or VT100), ET flag Bit 9 (value
|
|||
|
512) will be on.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-17A: VIDEO TERMINAL WATCH COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
-1W Refresh the terminal's screen to show the contents of
|
|||
|
the text buffer.
|
|||
|
|
|||
|
-nW Tell the video terminal screen refresher that the top
|
|||
|
n-1 lines of the screen have been altered. The screen
|
|||
|
refresher will completely redraw the top n-1 lines of
|
|||
|
the screen upon the next -1W command.
|
|||
|
|
|||
|
nW Place the default cursor line at line n of the screen.
|
|||
|
The initial default cursor line is line 16. This
|
|||
|
command makes the window support forget the screen
|
|||
|
image and any special associated modes (SEEALL, MARK,
|
|||
|
HOLD).
|
|||
|
|
|||
|
0W Equivalent to "16W".
|
|||
|
|
|||
|
W Forget screen image and special scope modes.
|
|||
|
|
|||
|
-1000W Forget that output was done. Normally, if the user
|
|||
|
outputs to the terminal with a command such as T, n^T,
|
|||
|
or ^A, TECO will believe that the window needs
|
|||
|
updating, and upon the next -1W command, TECO will
|
|||
|
refresh the entire window display. Issuing the -1000W
|
|||
|
command informs TECO that the output command did not
|
|||
|
destroy the window.
|
|||
|
[TECO-11 only]
|
|||
|
|
|||
|
Standard TECO PAGE 114
|
|||
|
Video Terminal Scope Commands
|
|||
|
|
|||
|
|
|||
|
The :W commands are used to interrogate and set (see m,n:W below)
|
|||
|
video terminal status information, as well as implement some of
|
|||
|
the more advanced features of the video terminal "WATCH"
|
|||
|
functions.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-17B: VIDEO TERMINAL STATUS COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
0:W Return a number representing the type of scope in use
|
|||
|
as the editing terminal. Current values are:
|
|||
|
|
|||
|
0 VT52
|
|||
|
1 VT61 [TECO-10 only]
|
|||
|
2 VT100 in VT52 mode
|
|||
|
4 VT100 in ANSI mode
|
|||
|
6 VT05
|
|||
|
8 VT102 in ANSI mode
|
|||
|
10 VK100 (GIGI)
|
|||
|
|
|||
|
:W Equivalent to 0:W
|
|||
|
|
|||
|
1:W Return or set the horizontal size of the user's editing
|
|||
|
scope. This number represents the number of character
|
|||
|
positions available horizontally along the face of the
|
|||
|
scope.
|
|||
|
|
|||
|
If this value is changed (see m,n:W below), the
|
|||
|
operating system is automatically informed of the
|
|||
|
terminal's new width setting, and the appropriate
|
|||
|
control sequence is issued to physically change the
|
|||
|
terminal's screen mode (80 versus 132 column mode) if
|
|||
|
needed.
|
|||
|
|
|||
|
2:W Return or set the vertical size of the user's editing
|
|||
|
scope. This number represents the number of lines of
|
|||
|
text that can appear on the screen of the terminal.
|
|||
|
This number is affected by use of the m,7:W command
|
|||
|
(set scrolling region).
|
|||
|
|
|||
|
3:W Return or set SEEALL mode. 0 represents off and -1
|
|||
|
represents on. In SEEALL mode, a visible indication is
|
|||
|
shown in the window for every character, including
|
|||
|
characters that normally don't print.
|
|||
|
|
|||
|
4:W Return or set "mark" status of window support. 0 means
|
|||
|
that no mark has been set. A value of n means that a
|
|||
|
mark has been set at buffer ("dot") position n-1. This
|
|||
|
status is used by software that uses the window support
|
|||
|
and by the support itself in the case of scopes that
|
|||
|
support reverse video.
|
|||
|
|
|||
|
Standard TECO PAGE 115
|
|||
|
Video Terminal Scope Commands
|
|||
|
|
|||
|
|
|||
|
5:W Return or set the hold mode indicator. 0 means off, -1
|
|||
|
means hold whole screen, and a positive value, n, means
|
|||
|
hold all but top and bottom n lines. If hold mode is
|
|||
|
on, then scrolling is inhibited until the cursor is
|
|||
|
about to run off either end of the screen. This makes
|
|||
|
the window display more palatable on terminals on a
|
|||
|
slow line. If hold mode is on, the window support will
|
|||
|
scroll the window as necessary in an attempt to keep
|
|||
|
the cursor centered.
|
|||
|
|
|||
|
6:W Returns buffer pointer position of character that was
|
|||
|
in the upper left hand corner of the window as of the
|
|||
|
last -1W command.
|
|||
|
|
|||
|
7:W Return or set the number of lines in the scrolling
|
|||
|
(command dialogue) portion of the screen. If n is
|
|||
|
zero, then split screen scrolling is disabled. When
|
|||
|
split screen scrolling is enabled, n lines (as
|
|||
|
specified) are reserved at the bottom of the screen to
|
|||
|
scroll the terminal interaction. The remainder of the
|
|||
|
screen is used as a display window into the text
|
|||
|
buffer, and is automatically updated by TECO
|
|||
|
immediately before each command prompt. This feature
|
|||
|
functions only on terminals capable of split screen
|
|||
|
scrolling, such as members of the VT100 and VT200
|
|||
|
families.
|
|||
|
|
|||
|
The value of n must be greater than 1, and scope height
|
|||
|
minus n must be greater than 9.
|
|||
|
|
|||
|
Whenever the scrolling region's size is modified (that
|
|||
|
is, whenever an m,7:W command is executed), TECO alters
|
|||
|
the scope's height (2:W) accordingly. For example, if
|
|||
|
2:W is currently returning a value of 24, then after a
|
|||
|
5,7:W command 2:W will return a value of 19. Executing
|
|||
|
a 0,7:W will restore 2:W to 24.
|
|||
|
|
|||
|
m,n:W Sets the entity represented by n:W to m and returns a
|
|||
|
value. If the new setting has been accepted, the
|
|||
|
returned value is m. Elsewise, the returned value is
|
|||
|
either the old value associated with n:W or whatever
|
|||
|
new setting was actually set. In all cases, the
|
|||
|
returned value reflects the new current setting.
|
|||
|
Specific operating systems may put restrictions on the
|
|||
|
valid values for m.
|
|||
|
|
|||
|
Note that each m,n:W command returns a value, even if
|
|||
|
your only intent is to set something. Good programming
|
|||
|
practice suggests following any command which returns a
|
|||
|
value with <DELIM> or ^[ if you don't intend that value
|
|||
|
to be passed to the following command.
|
|||
|
|
|||
|
Standard TECO PAGE 116
|
|||
|
Video Terminal Scope Commands
|
|||
|
|
|||
|
|
|||
|
5.17.2 Refresh Scope Commands
|
|||
|
|
|||
|
If refresh scope support is present and a refresh scope is
|
|||
|
available (such as a VS60 or a VR12), bit value 1024 of the ET
|
|||
|
flag will be on.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-17C: REFRESH SCOPE WATCH COMMANDS
|
|||
|
|
|||
|
COMMAND FUNCTION
|
|||
|
|
|||
|
W Update the refresh scope screen to reflect the contents
|
|||
|
of the text buffer surrounding the text pointer
|
|||
|
("dot").
|
|||
|
|
|||
|
0W Turn off the refresh scope display.
|
|||
|
|
|||
|
nW Set the number of lines to be displayed around the text
|
|||
|
pointer to n.
|
|||
|
|
|||
|
Standard TECO PAGE 117
|
|||
|
Programming Aids
|
|||
|
|
|||
|
|
|||
|
5.18 PROGRAMMING AIDS
|
|||
|
|
|||
|
In addition to the command string editing capabilities described
|
|||
|
in Chapter 4, TECO includes various features to facilitate
|
|||
|
programming. These are described in the following sections.
|
|||
|
|
|||
|
|
|||
|
5.18.1 Text Formatting
|
|||
|
|
|||
|
The characters carriage return, line feed, and space are ignored
|
|||
|
in command strings, except when they appear as part of a text
|
|||
|
argument. Numeric values are not affected. (Inserting a space
|
|||
|
between digits within a digit string may cause unpredictable
|
|||
|
results). These characters may be inserted between any two TECO
|
|||
|
commands to lend clarity to a long command string. The carriage
|
|||
|
return/line feed combination is particularly useful for typing
|
|||
|
command strings which are too long to fit on a single line.
|
|||
|
|
|||
|
If the character form feed is encountered in a command string and
|
|||
|
it is not part of a text argument, a form feed is output to the
|
|||
|
terminal. This can be used to format terminal output. On
|
|||
|
TECO-10, execution of the form feed command will clear the screen
|
|||
|
if TECO is in scope command string editing mode (2&ET on).
|
|||
|
|
|||
|
|
|||
|
5.18.2 Comments
|
|||
|
|
|||
|
One of the most powerful features of TECO is its ability to store
|
|||
|
very long command strings so that a given sequence of commands
|
|||
|
may be executed whenever needed. Long command strings may be
|
|||
|
thought of as editing programs and, like any other type of
|
|||
|
program, they should be documented by means of comments.
|
|||
|
|
|||
|
Comments may be inserted between any two commands by using a tag
|
|||
|
construction of the form:
|
|||
|
|
|||
|
!THIS IS A COMMENT!
|
|||
|
|
|||
|
Comments may contain any number of characters and any characters
|
|||
|
except the special characters. Thus a long TECO macro might look
|
|||
|
like:
|
|||
|
|
|||
|
TECO commands !This comment describes line 1!
|
|||
|
TECO commands !This comment describes line 2!
|
|||
|
more commands
|
|||
|
more commands !end of comment string!
|
|||
|
|
|||
|
Do not use <TAB> characters to format long command strings! Only
|
|||
|
<space>, <CR>, and <LF> can be used to format command strings
|
|||
|
since <TAB> is an insertion command.
|
|||
|
|
|||
|
Good TECO code is well structured and adequately commented.
|
|||
|
Unfortunately, massive comments in a TECO macro tend to slow
|
|||
|
|
|||
|
Standard TECO PAGE 118
|
|||
|
Programming Aids
|
|||
|
|
|||
|
|
|||
|
execution, especially if they appear within text scanned by GOTOs
|
|||
|
or unsatisfied conditionals. Unless speed is not a goal, it is
|
|||
|
common practice in larger TECO programs to strip out comments
|
|||
|
before loading up TECO macros. Thus the TECO program can be
|
|||
|
adequately commented, yet still run efficiently.
|
|||
|
|
|||
|
A large TECO program can start by placing a comment stripper in a
|
|||
|
Q-register, say Q-register C. Then it can successively put
|
|||
|
subroutines (macro text) into the text buffer, do an MC, and load
|
|||
|
the appropriate Q-register with the resulting text buffer, until
|
|||
|
all the subroutines have been loaded. Finally, Q-register C can
|
|||
|
be zeroed and the program started.
|
|||
|
|
|||
|
In order for you to strip the comments without losing essential
|
|||
|
tags, you must make a convention for the format of your comments
|
|||
|
so that your comment stripper can distinguish them from tags.
|
|||
|
There are two common conventions. In one, the first character in
|
|||
|
every comment after the initial ! is some distinctive character,
|
|||
|
such as *. In the other, all tags start in the left margin and
|
|||
|
all comments are embedded within the text. Any large comment
|
|||
|
that wants to be on a line by itself starts with a <space> before
|
|||
|
the !. Both methods allow for readable code and easy comment
|
|||
|
stripping.
|
|||
|
|
|||
|
|
|||
|
5.18.3 Messages
|
|||
|
|
|||
|
The <CTRL/A> command may be used to print out a statement at any
|
|||
|
point during the execution of a command string. The <CTRL/A>
|
|||
|
command has the general form:
|
|||
|
|
|||
|
^Atext<CTRL/A>
|
|||
|
|
|||
|
or
|
|||
|
|
|||
|
@^A/text/
|
|||
|
|
|||
|
The first ^A is the actual command, which may be entered by
|
|||
|
striking the control key and the A key simultaneously or by
|
|||
|
typing a caret (uparrow) followed by an A character. The second
|
|||
|
<CTRL/A> character of the first form shown is the command
|
|||
|
terminator, which must be entered by typing the control key and
|
|||
|
the A key simultaneously. In the second form, the second
|
|||
|
occurrence of the delimiting character (shown as slash in the
|
|||
|
example) terminates the message. Upon execution, this command
|
|||
|
causes TECO to print the specified message at the terminal.
|
|||
|
|
|||
|
The ^Amessage<CTRL/A> command is particularly useful when it
|
|||
|
precedes a command whose numeric argument contains ^T or ^F
|
|||
|
characters. The message may contain instructions notifying the
|
|||
|
user as to what sort of input is required.
|
|||
|
|
|||
|
Standard TECO PAGE 119
|
|||
|
Programming Aids
|
|||
|
|
|||
|
|
|||
|
5.18.4 Tracing
|
|||
|
|
|||
|
A question mark entered betweeen any two commands in a command
|
|||
|
string causes TECO to print all subsequent commands at the
|
|||
|
terminal as they are executed. Commands will be printed as they
|
|||
|
are executed until another question mark character is encountered
|
|||
|
or the command string terminates.
|
|||
|
|
|||
|
|
|||
|
5.18.5 Convenience Characters
|
|||
|
|
|||
|
In addition to the characters mentioned in Section 5.18.1, there
|
|||
|
are several characters which have no special meaning to TECO but
|
|||
|
which may be used to help format your TECO programs and command
|
|||
|
strings. Judicious use of these commands will make your program
|
|||
|
easier to read and maintain. These characters are described in
|
|||
|
the table below:
|
|||
|
|
|||
|
|
|||
|
TABLE 5-18A: CONVENIENCE CHARACTERS
|
|||
|
|
|||
|
CHARACTER MEANING
|
|||
|
|
|||
|
<NULL> A null (ASCII 0) encountered as a TECO
|
|||
|
command will be ignored. Numeric values are
|
|||
|
not affected. A null read in from an input
|
|||
|
file will be discarded (except under RSX-11
|
|||
|
and VAX/VMS). A null typed in from a
|
|||
|
terminal will be ignored.
|
|||
|
|
|||
|
<ESCAPE> An ESCape that is executed as a TECO command
|
|||
|
(as distinct from an immediate action command
|
|||
|
or an ESCape that is part of the syntax of
|
|||
|
some other TECO command) is ignored by TECO.
|
|||
|
However, any pending numeric values are
|
|||
|
discarded. This command is useful for
|
|||
|
discarding the value returned from a command
|
|||
|
(such as n%q or m,n:W) when you don't want
|
|||
|
that value to affect execution of the
|
|||
|
following command.
|
|||
|
|
|||
|
^[ Same as <ESCAPE>. Like any other TECO
|
|||
|
command that is a control character, ESCape
|
|||
|
may be entered in up-arrow mode. Sometimes
|
|||
|
easier to type, ^[ is also useful on systems
|
|||
|
whose line-printer spoolers do not visibly
|
|||
|
print the ESCape character.
|
|||
|
|
|||
|
Any pending numeric values are discarded.
|
|||
|
This command is useful for discarding the
|
|||
|
value returned from a command (such as n%q or
|
|||
|
m,n:W) when you don't want that value to
|
|||
|
affect execution of the following command.
|
|||
|
|
|||
|
Standard TECO PAGE 120
|
|||
|
Programming Aids
|
|||
|
|
|||
|
|
|||
|
<ALTMODE> Some older terminals may have no ESCape key,
|
|||
|
but instead a key labelled ALTMODE or PREFIX
|
|||
|
which sends TECO a character whose ASCII
|
|||
|
value is 175 or 176. In such a case, TECO
|
|||
|
will treat these characters as if they were
|
|||
|
typed in as an ESCape (octal 33), provided
|
|||
|
lower to upper case conversion is enabled.
|
|||
|
|
|||
|
$ (dollar sign) Same as <ESCAPE>, but as a command only, not
|
|||
|
as a string terminator.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
Note that <TAB> and <FORM FEED> are valid TECO commands and must
|
|||
|
not be used as aids to formatting TECO programs.
|
|||
|
|
|||
|
|
|||
|
5.18.6 Memory Expansion
|
|||
|
|
|||
|
The nEC command can be used to make TECO reclaim lost space after
|
|||
|
it had expanded memory usage. nEC tells TECO to expand or
|
|||
|
contract until it uses nK words of memory. If this is not
|
|||
|
possible, then TECO's memory usage does not change. The 0EC
|
|||
|
command tells TECO to shrink back to its original size (use the
|
|||
|
least amount of memory possible).
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
Standard TECO PAGE 121
|
|||
|
Programming Aids
|
|||
|
|
|||
|
|
|||
|
5.18.7 Case Control
|
|||
|
|
|||
|
The <CTRL/V> and <CTRL/W> TECO commands are used to specify
|
|||
|
automatic case control for alphabetic characters typed into
|
|||
|
strings.
|
|||
|
|
|||
|
|
|||
|
TABLE 5-18B: CASE CONTROL CHARACTERS
|
|||
|
|
|||
|
CHARACTER MEANING
|
|||
|
|
|||
|
^V <CTRL/V> puts TECO into lower case conversion mode. In
|
|||
|
this mode, all alphabetic characters in string
|
|||
|
arguments are automatically changed to lower case.
|
|||
|
This mode can be overridden by explicit case control
|
|||
|
within the search string. This command makes all
|
|||
|
strings behave as if they began with a ^V^V.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
^W <CTRL/W> puts TECO into upper case conversion mode. In
|
|||
|
this mode, all alphabetic characters in string
|
|||
|
arguments are automatically changed to upper case.
|
|||
|
This mode can be overriden by explicit case control
|
|||
|
within the search string. This command makes all
|
|||
|
strings behave as if they began with ^W^W.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
0^V Returns TECO to its original mode. No special case
|
|||
|
conversion occurs within strings except those case
|
|||
|
conversions that are explicitly specified by ^V and ^W
|
|||
|
string build constructs located within the string.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
0^W Same as ^V.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
Standard TECO PAGE 122
|
|||
|
Manipulating Large Pages
|
|||
|
|
|||
|
|
|||
|
5.19 MANIPULATING LARGE PAGES
|
|||
|
|
|||
|
TECO is designed to operate most efficiently when editing files
|
|||
|
that contain no more than several thousand characters per page.
|
|||
|
(TECO storage includes Q-register storage and buffer space. The
|
|||
|
size of the text storage area is dynamic and depends on the
|
|||
|
amount of available memory.) If any page of an input file is too
|
|||
|
large to fit in the text area, the TECO input commands will
|
|||
|
terminate reading that page into memory when the first line feed
|
|||
|
is encountered after a point that the buffer is 3/4 full. (See
|
|||
|
appendices for details.) You can make room by positioning the
|
|||
|
pointer past a section of text at the beginning of the buffer and
|
|||
|
moving that section out of the buffer with the commands:
|
|||
|
|
|||
|
0,.PW0,.K
|
|||
|
|
|||
|
It is sometimes advantageous to restrict the amount of the file
|
|||
|
that is present in the buffer. For example, each insert and
|
|||
|
delete command must move the entire text that is beyond the point
|
|||
|
of insertion or deletion. An operation that does many small
|
|||
|
inserts or deletes may therefore run extremely slowly if the text
|
|||
|
buffer is large. Such an operation can be sped up substantially
|
|||
|
by reading the input file with n:A commands and explicitly
|
|||
|
writing the processed text.
|
|||
|
|
|||
|
Standard TECO PAGE 123
|
|||
|
Techniques
|
|||
|
|
|||
|
|
|||
|
5.20 TECHNIQUES AND EXAMPLES
|
|||
|
|
|||
|
The most elementary TECO application, described in Chapter 1 of
|
|||
|
this manual, is creating and editing ASCII files on-line. The
|
|||
|
user enters short command strings, often consisting of a single
|
|||
|
command, and proceeds from task to task until the file is
|
|||
|
completely edited.
|
|||
|
|
|||
|
Since every editing job is simply a long sequence of TECO
|
|||
|
commands, you may accomplish an entire job with one long command
|
|||
|
string made up of all the short command strings placed end to end
|
|||
|
with the intervening double <DELIM> characters removed. A long
|
|||
|
command string that performs a certain editing task can be
|
|||
|
considered a TECO "editing program". Editing programs may be
|
|||
|
written (using TECO) and stored in the same manner as any other
|
|||
|
ASCII file. Whenever the program is needed, it may be read into
|
|||
|
the buffer as text, stored in a Q-register, and executed by an Mq
|
|||
|
command.
|
|||
|
|
|||
|
For more complex editing jobs, you may want to write and maintain
|
|||
|
a collection of specialized "editing subroutines." TECO
|
|||
|
subroutines can perform such elementary functions as replacing
|
|||
|
every occurrence of two or more consecutive spaces with a
|
|||
|
tabulation character, for example, or ensuring that words are not
|
|||
|
hyphenated across a page boundary. When an editing problem
|
|||
|
arises, you can load the right combination of subroutines into
|
|||
|
various Q-registers, augment them with additional commands if
|
|||
|
necessary, and call them by a "mainline" command string.
|
|||
|
|
|||
|
Editing subroutines are essentially macros; that is, sequences
|
|||
|
of commands which perform commonly required editing functions.
|
|||
|
The most powerful application of TECO is the creation and use of
|
|||
|
a macro library. As you perform an editing job, look for
|
|||
|
sequences of operations which might be required in future editing
|
|||
|
assignments. Load all of the TECO commands required to perform
|
|||
|
such an operation into a Q-register. When the job is finished,
|
|||
|
write the contents of the Q-register onto an output file (via the
|
|||
|
buffer) and save it in the macro library. The nMq and m,nMq
|
|||
|
commands, which were designed to facilitate use of macros, permit
|
|||
|
run-time numeric arguments to be passed to a macro.
|
|||
|
|
|||
|
TECO macros can preserve the user's radix, flag values, etc. By
|
|||
|
using the Q-register push-down list, the macro can save and then
|
|||
|
restore values and/or text. For example:
|
|||
|
|
|||
|
[0 [1 [2 ! Save contents of Q-registers 0, 1 and 2 !
|
|||
|
+0U0 ! Put any calling argument into Q-register 0 !
|
|||
|
10U1 ! Put a 10 (if radix is decimal) or 8 (if radix is
|
|||
|
octal) into Q-register 1 !
|
|||
|
^D ! Ensure that the current radix is now decimal !
|
|||
|
EUU2 ! Save the case flagging flag !
|
|||
|
-1EU ! Ensure no case flagging !
|
|||
|
Q0"E 3U0 ' ! Default calling argument to 3 !
|
|||
|
|
|||
|
Standard TECO PAGE 124
|
|||
|
Techniques
|
|||
|
|
|||
|
|
|||
|
...
|
|||
|
Q2EU ! Restore the case flagging flag !
|
|||
|
10-Q1"N ^O ' ! Restore radix as octal if needed !
|
|||
|
]2 ]1 ]0 ! Restore contents of Q-registers 2, 1, and 0 !
|
|||
|
|
|||
|
The EI command is particularly useful for executing macros from a
|
|||
|
library, since with it they may be read without disturbing the
|
|||
|
current input file. This makes it unnecessary to plan in advance
|
|||
|
which macros might be needed; it also saves Q-register storage
|
|||
|
space. You can retrieve two kinds of TECO command files with an
|
|||
|
EI command: a file containing a TECO command that loads the
|
|||
|
macro into a Q-register for later use, or a file containing just
|
|||
|
the macro (which must be retrieved with EI each time it is used).
|
|||
|
|
|||
|
The following examples are intended to illustrate some of the
|
|||
|
techniques discussed above. It would not be practical to include
|
|||
|
examples of the use of every TECO command, since most of the
|
|||
|
commands apply to many diverse situations. Instead, you are
|
|||
|
encouraged to experiment with the individual commands on scratch
|
|||
|
files.
|
|||
|
|
|||
|
|
|||
|
EXAMPLE 1: SPLITTING, MERGING, AND REARRANGING FILES
|
|||
|
|
|||
|
Assume that there is a file named PROG.DAT on the system disk and
|
|||
|
that this file contains data in the following form:
|
|||
|
|
|||
|
AB <FF> CD <FF> EF <FF> GH <FF> IJ <FF> KL <FF> MN <FF> OP
|
|||
|
|
|||
|
where each of the letters A, B, C etc., represents 20 lines of
|
|||
|
text and <FF> represents a form feed character. The user intends
|
|||
|
to rearrange the file so that it appears in the following format:
|
|||
|
|
|||
|
AOB <FF> D <FF> MN <FF> EF <FF> ICJ <FF> KL <FF> P <FF> GH
|
|||
|
|
|||
|
The following sequence of commands will achieve this
|
|||
|
rearrangement. (Search command arguments are not listed
|
|||
|
explicitly.)
|
|||
|
|
|||
|
|
|||
|
Start TECO.
|
|||
|
*2ED`` Allow all Y commands.
|
|||
|
*EBPROG.DAT`Y`` Specify input file and get first page.
|
|||
|
*NC`` Search for a character string in C, writing A
|
|||
|
and B on the output file.
|
|||
|
*J20X1`` Save all of C in Q-register 1.
|
|||
|
*20K`` Delete C from the buffer.
|
|||
|
*NG`` Search for a character string in G, writing
|
|||
|
D, E, and F on the output file.
|
|||
|
*HX2`` Save G and H in Q-register 2.
|
|||
|
*Y`` Delete GH from the buffer and read IJ.
|
|||
|
*20L`` Move the pointer to the beginning of J.
|
|||
|
*G1`` Insert C, which was stored in Q-register 1.
|
|||
|
|
|||
|
Standard TECO PAGE 125
|
|||
|
Techniques
|
|||
|
|
|||
|
|
|||
|
*NM`` Search for a character string in M, writing
|
|||
|
ICJ and KL on the output file.
|
|||
|
*HX1`` Save MN in Q-register 1 (the previous
|
|||
|
contents is overwritten).
|
|||
|
*Y`` Delete MN and read OP
|
|||
|
*J20X3`` Save all of O in Q-register 3.
|
|||
|
*20K`` Delete O from the buffer.
|
|||
|
*PWHK`` Write P onto the output file, appending a
|
|||
|
form feed, and clear the text buffer.
|
|||
|
*G2`` Bring GH into the buffer from Q-register 2.
|
|||
|
*HPEF`` Write GH on the output file and close it.
|
|||
|
*EBPROG.DAT`Y`` Open the partially revised file.
|
|||
|
*20L`` Move the pointer to the beginning of B.
|
|||
|
*G3`` Insert all of O from Q-register 3.
|
|||
|
*ND`` Search for a character string in D writing
|
|||
|
AOB on the output file.
|
|||
|
*PWHK`` Write D on the output file and clear buffer.
|
|||
|
*G1`` Bring all of MN from Q-register 1 into the
|
|||
|
buffer.
|
|||
|
*EX`` Write MN onto the output file, then close the
|
|||
|
file and exit.
|
|||
|
|
|||
|
At this point the file has been rearranged in the desired format.
|
|||
|
Of course, this rearrangement could have been accomplished in
|
|||
|
fewer steps if the commands listed above had been combined into
|
|||
|
longer command strings. Note that the asterisks shown at the
|
|||
|
left margin in this example are generated by TECO, and not typed
|
|||
|
by the user.
|
|||
|
|
|||
|
Assume, now, that the same input file, containing data in the
|
|||
|
form:
|
|||
|
|
|||
|
AB <FF> CD <FF> EF <FF> ... <FF> OP
|
|||
|
|
|||
|
is to be split into two separate files, with the first file
|
|||
|
containing AB <FF> CD and the second file containing KL <FF> M,
|
|||
|
while the rest of the data is to be discarded. The following
|
|||
|
commands could be used to achieve this rearrangement:
|
|||
|
|
|||
|
|
|||
|
Start TECO.
|
|||
|
*2ED`` Allow all Y commands.
|
|||
|
*ERFILE`EWFILE1`` Open the input file and the first output
|
|||
|
file.
|
|||
|
*Y`` Read AB into the buffer.
|
|||
|
*P`` Write AB <FF> onto the output file and read
|
|||
|
CD into the buffer.
|
|||
|
*HPEF`` Write CD onto the output file (without
|
|||
|
appending a form feed), and close the first
|
|||
|
output file.
|
|||
|
*_K`` Search for a character string in K. After
|
|||
|
this command has been executed, the buffer
|
|||
|
will contain KL. No output is generated.
|
|||
|
|
|||
|
Standard TECO PAGE 126
|
|||
|
Techniques
|
|||
|
|
|||
|
|
|||
|
*EWFILE2`P`` Open the second output file and write KL onto
|
|||
|
it. Read MN into the buffer.
|
|||
|
*20L0,.P`` Move the pointer to the end of M, then write
|
|||
|
M onto the output file.
|
|||
|
*EF`` Close the output file.
|
|||
|
*HKEX`` Clear the buffer and exit.
|
|||
|
|
|||
|
As a final example of file manipulation techniques, assume that
|
|||
|
there are two files. One file is MATH.ONE, which contains
|
|||
|
information in the form:
|
|||
|
|
|||
|
AB <FF> CD <FF> EF <FF> GH <FF> IJ <FF> KL
|
|||
|
|
|||
|
and the other is MATH.TWO, which contains:
|
|||
|
|
|||
|
MN <FF> OP <FF> QR
|
|||
|
|
|||
|
If both of these files are stored on DK1, the following sequence
|
|||
|
of commands may be used to merge the two files into a single
|
|||
|
file, MATH.NEW, which contains all of MATH.TWO followed by the
|
|||
|
latter half of file MATH.ONE in the following format:
|
|||
|
|
|||
|
MN <FF> OP <FF> QR <FF> GH <FF> IJ <FF> KL
|
|||
|
|
|||
|
|
|||
|
Start TECO.
|
|||
|
*2ED`` Allow all Y commands.
|
|||
|
*ERDK1:MATH.TWO`` Open the first input file.
|
|||
|
*EWMATH.NEW`` Open the output file on the default device.
|
|||
|
*Y`` Read MN into the text buffer.
|
|||
|
*NR`` Search for a character string in R, writing
|
|||
|
MN and OP onto the output file.
|
|||
|
*PW`` Write QR onto the output file, appending a
|
|||
|
form feed.
|
|||
|
*ERDK1:MATH.ONE`` Open the second input file.
|
|||
|
*HKY`` Read AB into the buffer. QR is over-written.
|
|||
|
*_G`` Search for a character string in G, deleting
|
|||
|
AB, CD, and EF, leaving GH in the buffer.
|
|||
|
*NK`` Search for a character string in K, writing
|
|||
|
GH and IJ on the output file, leaving KL in
|
|||
|
the buffer.
|
|||
|
*HPEFHKEX`` Write KL onto the output file (without
|
|||
|
appending a form feed) and close the file,
|
|||
|
then exit.
|
|||
|
|
|||
|
Standard TECO PAGE 127
|
|||
|
Techniques
|
|||
|
|
|||
|
|
|||
|
EXAMPLE 2: ALPHABETIZING BY INTERCHANGE SORT
|
|||
|
|
|||
|
Assume that TECO is running and that the buffer contains many
|
|||
|
short lines of text beginning with an alphabetic character at the
|
|||
|
left margin (i.e., immediately following a line feed). The lines
|
|||
|
might consist of names in a roster, for example, or entries in an
|
|||
|
index. The following command string will rearrange the lines
|
|||
|
into rough alphabetical order, grouping all lines which begin
|
|||
|
with the character "A" at the beginning of the page, followed by
|
|||
|
all lines with "B", and so on. Note that the algorithm could be
|
|||
|
extended to place the entries in strict alphabetical order by
|
|||
|
having it loop back to perform the same sorting operation on
|
|||
|
successive characters in each line.
|
|||
|
|
|||
|
|
|||
|
!START! J 0AUA !Load first character of first line
|
|||
|
into Q-register A !
|
|||
|
!CONT! L 0AUB !Load first character of next line
|
|||
|
into Q-register B !
|
|||
|
QA-QB"G XA K -L GA 1UZ ' !If A>B, switch the lines and set a
|
|||
|
flag (Q-register Z) !
|
|||
|
QBUA !Load B into A !
|
|||
|
L Z-."G -L @O/CONT/ ' !Loop back if there is another line
|
|||
|
in the buffer !
|
|||
|
QZ"G 0UZ @O/START/ ' !Repeat if a switch was made on the
|
|||
|
last pass !
|
|||
|
|
|||
|
|
|||
|
The same algorithm can be coded in a more structured way as
|
|||
|
follows:
|
|||
|
|
|||
|
|
|||
|
0UZ !clear repeat flag!
|
|||
|
<J 0AUA L !Load first character of first line
|
|||
|
into Q-register A !
|
|||
|
<0AUB !Load first character of next line
|
|||
|
into Q-register B !
|
|||
|
QA-QB"G XA K -L GA -1UZ ' !If A>B, switch the lines and set a
|
|||
|
flag !
|
|||
|
QBUA !Load B into A !
|
|||
|
L .-Z;> !Loop back if there is another line
|
|||
|
in the buffer !
|
|||
|
QZ;> !Repeat if a switch was made on the
|
|||
|
last pass !
|
|||
|
|
|||
|
This example is a bit shorter and does not use any GOTOs. It
|
|||
|
will also run somewhat faster.
|
|||
|
|
|||
|
Standard TECO PAGE 128
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A
|
|||
|
|
|||
|
|
|||
|
Octal & Decimal ASCII Character Set
|
|||
|
|
|||
|
(GL characters, on one page)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Char Oct Dec Char Oct Dec Char Oct Dec Char Oct Dec
|
|||
|
|
|||
|
|
|||
|
NUL 000 000 SP 040 032 @ 100 064 ` 140 096
|
|||
|
^A 001 001 ! 041 033 A 101 065 a 141 097
|
|||
|
^B 002 002 " 042 034 B 102 066 b 142 098
|
|||
|
^C 003 003 # 043 035 C 103 067 c 144 099
|
|||
|
^D 004 004 $ 044 036 D 104 068 d 144 100
|
|||
|
^E 005 005 % 045 037 E 105 069 e 145 101
|
|||
|
^F 006 006 & 046 038 F 106 070 f 146 102
|
|||
|
^G 007 007 ' 047 039 G 107 071 g 147 103
|
|||
|
|
|||
|
BS 010 008 ( 050 040 H 110 072 h 150 104
|
|||
|
TAB 011 009 ) 051 041 I 111 073 i 151 105
|
|||
|
LF 012 010 * 052 042 J 112 074 j 152 106
|
|||
|
VT 013 011 + 053 043 K 113 075 k 153 107
|
|||
|
FF 014 012 , 054 044 L 114 076 l 154 108
|
|||
|
CR 015 013 - 055 045 M 115 077 m 155 109
|
|||
|
^N 016 014 . 056 046 N 116 078 n 156 110
|
|||
|
^O 017 015 / 057 047 O 117 079 o 157 111
|
|||
|
|
|||
|
^P 020 016 0 060 048 P 120 080 p 160 112
|
|||
|
^Q 021 017 1 061 049 Q 121 081 q 161 113
|
|||
|
^R 022 018 2 062 050 R 122 082 r 162 114
|
|||
|
^S 023 019 3 063 051 S 123 083 s 163 115
|
|||
|
^T 024 020 4 064 052 T 124 084 t 164 116
|
|||
|
^U 025 021 5 065 053 U 125 085 u 165 117
|
|||
|
^V 026 022 6 066 054 V 126 086 v 166 118
|
|||
|
^W 027 023 7 067 055 W 127 087 w 167 119
|
|||
|
|
|||
|
^X 030 024 8 070 056 X 130 088 x 170 120
|
|||
|
^Y 031 025 9 071 057 Y 131 089 y 171 121
|
|||
|
^Z 032 026 : 072 058 Z 132 090 z 172 122
|
|||
|
ESC 033 027 ; 073 059 [ 133 091 { 173 123
|
|||
|
FS 034 028 < 074 060 \ 134 092 | 174 124
|
|||
|
GS 035 029 = 075 061 ] 135 093 } 175 125
|
|||
|
RS 036 030 > 076 062 ^ 136 094 ~ 176 126
|
|||
|
US 037 031 ? 077 063 _ 137 095 DEL 177 127
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 129
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec Char Description
|
|||
|
|
|||
|
[00] 000 0. <NUL>
|
|||
|
[01] 001 1. ^A Control-A
|
|||
|
[02] 002 2. ^B Control-B
|
|||
|
[03] 003 3. ^C Control-C
|
|||
|
[04] 004 4. ^D Control-D
|
|||
|
[05] 005 5. ^E Control-E
|
|||
|
[06] 006 6. ^F Control-F
|
|||
|
[07] 007 7. ^G Bell
|
|||
|
|
|||
|
[08] 010 8. <BS> Backspace
|
|||
|
[09] 011 9. <TAB> Horizontal tab
|
|||
|
[0A] 012 10. <LF> Line feed
|
|||
|
[0B] 013 11. <VT> Vertical tab
|
|||
|
[0C] 014 12. <FF> Form feed
|
|||
|
[0D] 015 13. <CR> Carriage return
|
|||
|
[0E] 016 14. <SO> Control-N
|
|||
|
[0F] 017 15. <SI> Control-O
|
|||
|
|
|||
|
[10] 020 16. ^P Control-P
|
|||
|
[11] 021 17. <XON> Control-Q
|
|||
|
[12] 022 18. ^R Control-R
|
|||
|
[13] 023 19. <XOFF> Control-S
|
|||
|
[14] 024 20. ^T Control-T
|
|||
|
[15] 025 21. ^U Control-U
|
|||
|
[16] 026 22. ^V Control-V
|
|||
|
[17] 027 23. ^W Control-W
|
|||
|
|
|||
|
[18] 030 24. ^X Control-X
|
|||
|
[19] 031 25. ^Y Control-Y
|
|||
|
[1A] 032 26. ^Z Control-Z
|
|||
|
[1B] 033 27. <ESC> ESCape, control-[
|
|||
|
[1C] 034 28. <FS> Control-\
|
|||
|
[1D] 035 29. <GS> Control-]
|
|||
|
[1E] 036 30. <RS> Control-^
|
|||
|
[1F] 037 31. <US> Control-_
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 130
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec Char Description
|
|||
|
|
|||
|
[20] 040 32. Space
|
|||
|
[21] 041 33. ! Explanation point
|
|||
|
[22] 042 34. " Double quotation mark
|
|||
|
[23] 043 35. # Number sign
|
|||
|
[24] 044 36. $ Dollar sign
|
|||
|
[25] 045 37. % Percent sign
|
|||
|
[26] 046 38. & Ampersand
|
|||
|
[27] 047 39. ' Single quote, apostrophe
|
|||
|
|
|||
|
[28] 050 40. ( Left parenthesis
|
|||
|
[29] 051 41. ) Right parenthesis
|
|||
|
[2A] 052 42. * Asterisk
|
|||
|
[2B] 053 43. + Plus
|
|||
|
[2C] 054 44. , Comma
|
|||
|
[2D] 055 45. - Hyphen, minus
|
|||
|
[2E] 056 46. . Period, decimal point
|
|||
|
[2F] 057 47. / Slash, slant, solidus
|
|||
|
|
|||
|
[30] 060 48. 0 Digit 0
|
|||
|
[31] 061 49. 1 Digit 1
|
|||
|
[32] 062 50. 2 Digit 2
|
|||
|
[33] 063 51. 3 Digit 3
|
|||
|
[34] 064 52. 4 Digit 4
|
|||
|
[35] 065 53. 5 Digit 5
|
|||
|
[36] 066 54. 6 Digit 6
|
|||
|
[37] 067 55. 7 Digit 7
|
|||
|
|
|||
|
[38] 070 56. 8 Digit 8
|
|||
|
[39] 071 57. 9 Digit 9
|
|||
|
[3A] 072 58. : Colon
|
|||
|
[3B] 073 59. ; Semicolon
|
|||
|
[3C] 074 60. _< Left angle, less than
|
|||
|
[3D] 075 61. = Equals
|
|||
|
[3E] 076 62. _> Right angle, greater than
|
|||
|
[3F] 077 63. ? Question mark
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 131
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec Char Description
|
|||
|
|
|||
|
[40] 100 64. @ Commercial at
|
|||
|
[41] 101 65. A Upper case A
|
|||
|
[42] 102 66. B Upper case B
|
|||
|
[43] 103 67. C Upper case C
|
|||
|
[44] 104 68. D Upper case D
|
|||
|
[45] 105 69. E Upper case E
|
|||
|
[46] 106 70. F Upper case F
|
|||
|
[47] 107 71. G Upper case G
|
|||
|
|
|||
|
[48] 110 72. H Upper case H
|
|||
|
[49] 111 73. I Upper case I
|
|||
|
[4A] 112 74. J Upper case J
|
|||
|
[4B] 113 75. K Upper case K
|
|||
|
[4C] 114 76. L Upper case L
|
|||
|
[4D] 115 77. M Upper case M
|
|||
|
[4E] 116 78. N Upper case N
|
|||
|
[4F] 117 79. O Upper case O
|
|||
|
|
|||
|
[50] 120 80. P Upper case P
|
|||
|
[51] 121 81. Q Upper case Q
|
|||
|
[52] 122 82. R Upper case R
|
|||
|
[53] 123 83. S Upper case S
|
|||
|
[54] 124 84. T Upper case T
|
|||
|
[55] 125 85. U Upper case U
|
|||
|
[56] 126 86. V Upper case V
|
|||
|
[57] 127 87. W Upper case W
|
|||
|
|
|||
|
[58] 130 88. X Upper case X
|
|||
|
[59] 131 89. Y Upper case Y
|
|||
|
[5A] 132 90. Z Upper case Z
|
|||
|
[5B] 133 91. [ Opening bracket
|
|||
|
[5C] 134 92. \ Backslash, reverse slant
|
|||
|
[5D] 135 93. ] Closing bracket
|
|||
|
[5E] 136 94. ^ Circumflex, caret, uparrow
|
|||
|
[5F] 137 95. _ Underline, underscore
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 132
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec Char Description
|
|||
|
|
|||
|
[60] 140 96. ` Accent grave
|
|||
|
[61] 141 97. a Lower case a
|
|||
|
[62] 142 98. b Lower case b
|
|||
|
[63] 143 99. c Lower case c
|
|||
|
[64] 144 100. d Lower case d
|
|||
|
[65] 145 101. e Lower case e
|
|||
|
[66] 146 102. f Lower case f
|
|||
|
[67] 147 103. g Lower case g
|
|||
|
|
|||
|
[68] 150 104. h Lower case h
|
|||
|
[69] 151 105. i Lower case i
|
|||
|
[6A] 152 106. j Lower case j
|
|||
|
[6B] 153 107. k Lower case k
|
|||
|
[6C] 154 108. l Lower case l
|
|||
|
[6D] 155 109. m Lower case m
|
|||
|
[6E] 156 110. n Lower case n
|
|||
|
[6F] 157 111. o Lower case o
|
|||
|
|
|||
|
[70] 160 112. p Lower case p
|
|||
|
[71] 161 113. q Lower case q
|
|||
|
[72] 162 114. r Lower case r
|
|||
|
[73] 163 115. s Lower case s
|
|||
|
[74] 164 116. t Lower case t
|
|||
|
[75] 165 117. u Lower case u
|
|||
|
[76] 166 118. v Lower case v
|
|||
|
[77] 167 119. w Lower case w
|
|||
|
|
|||
|
[78] 170 120. x Lower case x
|
|||
|
[79] 171 121. y Lower case y
|
|||
|
[7A] 172 122. z Lower case z
|
|||
|
[7B] 173 123. { Opening brace
|
|||
|
[7C] 174 124. | Vertical line
|
|||
|
[7D] 175 125. } Closing brace
|
|||
|
[7E] 176 126. ~ Tilde, overline, high line
|
|||
|
[7F] 177 127. <DEL> Delete, rubout
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 133
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec Char Description
|
|||
|
|
|||
|
[80] 200 128.
|
|||
|
[81] 201 129.
|
|||
|
[82] 202 130.
|
|||
|
[83] 203 131.
|
|||
|
[84] 204 132. <IND>
|
|||
|
[85] 205 133. <NEL>
|
|||
|
[86] 206 134. <SSA>
|
|||
|
[87] 207 135. <ESA>
|
|||
|
|
|||
|
[88] 210 136. <HTS>
|
|||
|
[89] 211 137. <HTJ>
|
|||
|
[8A] 212 138. <VTS>
|
|||
|
[8B] 213 139. <PLD>
|
|||
|
[8C] 214 140. <PLU>
|
|||
|
[8D] 215 141. <RI>
|
|||
|
[8E] 216 142. <SS2>
|
|||
|
[8F] 217 143. <SS3>
|
|||
|
|
|||
|
[90] 220 144. <DCS>
|
|||
|
[91] 221 145. <PU1>
|
|||
|
[92] 222 146. <PU2>
|
|||
|
[93] 223 147. <STS>
|
|||
|
[94] 224 148. <CCH>
|
|||
|
[95] 225 149. <MW>
|
|||
|
[96] 226 150. <SPA>
|
|||
|
[97] 227 151. <EPA>
|
|||
|
|
|||
|
[98] 230 152.
|
|||
|
[99] 231 153.
|
|||
|
[9A] 232 154.
|
|||
|
[9B] 233 155. <CSI>
|
|||
|
[9C] 234 156. <ST>
|
|||
|
[9D] 235 157. <OSC>
|
|||
|
[9E] 236 158. <PM>
|
|||
|
[9F] 237 159. <APC>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 134
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec -- Description
|
|||
|
|
|||
|
[A0] 240 160. -
|
|||
|
[A1] 241 161. Inverted exclamation mark
|
|||
|
[A2] 242 162. Cent sign
|
|||
|
[A3] 243 163. Pound sterling sign
|
|||
|
[A4] 244 164. reserved for future
|
|||
|
[A5] 245 165. Yen
|
|||
|
[A6] 246 166. reserved for future
|
|||
|
[A7] 247 167. Section sign
|
|||
|
|
|||
|
[A8] 250 168. General currency sign
|
|||
|
[A9] 251 169. Copyright sign
|
|||
|
[AA] 252 170. Feminine ordinal indicator
|
|||
|
[AB] 253 171. Angle quotation mark left
|
|||
|
[AC] 254 172. reserved for future
|
|||
|
[AD] 255 173. reserved for future
|
|||
|
[AE] 256 174. reserved for future
|
|||
|
[AF] 257 175. reserved for future
|
|||
|
|
|||
|
[B0] 260 176. Degree sign
|
|||
|
[B1] 261 177. Plus/minus sign
|
|||
|
[B2] 262 178. Superscript 2
|
|||
|
[B3] 263 179. Superscript 3
|
|||
|
[B4] 264 180. reserved for future
|
|||
|
[B5] 265 181. Micro sign, Greek mu
|
|||
|
[B6] 266 182. Paragraph sign, pilcrow
|
|||
|
[B7] 267 183. Middle dot
|
|||
|
|
|||
|
[B8] 270 184. reserved for future
|
|||
|
[B9] 271 185. Superscript 1
|
|||
|
[BA] 272 186. Masculine ordinal indicator
|
|||
|
[BB] 273 187. Angle quotation mark right
|
|||
|
[BC] 274 188. Fraction one quarter
|
|||
|
[BD] 275 189. Fraction one half
|
|||
|
[BE] 276 190. reserved for future
|
|||
|
[BF] 277 191. Inverted question mark
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 135
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec -- Description
|
|||
|
|
|||
|
[C0] 300 192. A with accent grave
|
|||
|
[C1] 301 193. A with accent aigu (acute)
|
|||
|
[C2] 302 194. A with circumflex
|
|||
|
[C3] 303 195. A with tilde
|
|||
|
[C4] 304 196. A with umlaut (diaeresis)
|
|||
|
[C5] 305 197. A with ring
|
|||
|
[C6] 306 198. AE ligature
|
|||
|
[C7] 307 199. C with cedilla
|
|||
|
|
|||
|
[C8] 310 200. E with accent grave
|
|||
|
[C9] 311 201. E with accent aigu (acute)
|
|||
|
[CA] 312 202. E with circumflex
|
|||
|
[CB] 313 203. E with umlaut (diaeresis)
|
|||
|
[CC] 314 204. I with accent grave
|
|||
|
[CD] 315 205. I with accent aigu (acute)
|
|||
|
[CE] 316 206. I with circumflex
|
|||
|
[CF] 317 207. I with umlaut (diaeresis)
|
|||
|
|
|||
|
[D0] 320 208. reserved for future
|
|||
|
[D1] 321 209. N with tilde
|
|||
|
[D2] 322 210. O with accent grave
|
|||
|
[D3] 323 211. O with accent aigu (acute)
|
|||
|
[D4] 324 212. O with circumflex
|
|||
|
[D5] 325 213. O with tilde
|
|||
|
[D6] 326 214. O with umlaut (diaeresis)
|
|||
|
[D7] 327 215. OE ligature
|
|||
|
|
|||
|
[D8] 330 216. O (letter) with slash
|
|||
|
[D9] 331 217. U with accent grave
|
|||
|
[DA] 332 218. U with accent aigu (acute)
|
|||
|
[DB] 333 219. U with circumflex
|
|||
|
[DC] 334 220. U with umlaut (diaeresis)
|
|||
|
[DD] 335 221. Y with umlaut (diaeresis)
|
|||
|
[DE] 336 222. reserved for future
|
|||
|
[DD] 337 223. German sharp s
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Continued...
|
|||
|
|
|||
|
Standard TECO PAGE 136
|
|||
|
Appendix A
|
|||
|
|
|||
|
|
|||
|
APPENDIX A, Continued
|
|||
|
|
|||
|
|
|||
|
Octal, Hexadecimal, & Decimal ASCII Character Set (Complete)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Hex Oct Dec -- Description
|
|||
|
|
|||
|
[E0] 340 224. a with accent grave
|
|||
|
[E1] 341 225. a with accent aigu (acute)
|
|||
|
[E2] 342 226. a with circumflex
|
|||
|
[E3] 343 227. a with tilde
|
|||
|
[E4] 344 228. a with umlaut (diaeresis)
|
|||
|
[E5] 345 229. a with ring
|
|||
|
[E6] 346 230. ae ligature
|
|||
|
[E7] 347 231. c with cedilla
|
|||
|
|
|||
|
[E8] 350 232. e with accent grave
|
|||
|
[E9] 351 233. e with accent aigu (acute)
|
|||
|
[EA] 352 234. e with circumflex
|
|||
|
[EB] 353 235. e with umlaut (diaeresis)
|
|||
|
[EC] 354 236. e with umlaut (diaeresis)
|
|||
|
[ED] 355 237. i with accent aigu (acute)
|
|||
|
[EE] 356 238. i with circumflex
|
|||
|
[EF] 357 239. i with umlaut (diaeresis)
|
|||
|
|
|||
|
[F0] 360 240. reserved for future
|
|||
|
[F1] 361 241. n with tilde
|
|||
|
[F2] 362 242. o with accent grave
|
|||
|
[F3] 363 243. o with accent aigu (acute)
|
|||
|
[F4] 364 244. o with circumflex
|
|||
|
[F5] 365 245. o with tilde
|
|||
|
[F6] 366 246. o with umlaut (diaeresis)
|
|||
|
[F7] 367 247. oe ligature
|
|||
|
|
|||
|
[F8] 370 248. o (letter) with slash
|
|||
|
[F9] 371 249. u with accent grave
|
|||
|
[FA] 372 250. u with accent aigu (acute)
|
|||
|
[FB] 373 251. u with circumflex
|
|||
|
[FC] 374 252. u with umlaut (diaeresis)
|
|||
|
[FD] 375 253. y with umlaut (diaeresis)
|
|||
|
[FE] 376 254. reserved for future
|
|||
|
[FF] 377 255. -
|
|||
|
|
|||
|
Standard TECO PAGE 137
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
APPENDIX B
|
|||
|
|
|||
|
|
|||
|
ERROR MESSAGES
|
|||
|
|
|||
|
TECO error messages consist of a three letter message preceded by
|
|||
|
a question mark (?) or preceeded by ?TEC. A short description of
|
|||
|
the error optionally follows (dependent on the current value of
|
|||
|
the EH flag). Typing ? (question mark) immediately after an
|
|||
|
error message printout causes the command string to be printed up
|
|||
|
to and including the character which causes the error message.
|
|||
|
Typing *q (asterisk, Q-register name) immediately after an error
|
|||
|
message printout saves the entire command string in the specified
|
|||
|
Q-register. This is especially useful for recovering mistyped
|
|||
|
insert commands. Both the ? and *q facilities may be used when
|
|||
|
an error occurs.
|
|||
|
|
|||
|
TECO-11 also produces two warning messages. These messages do
|
|||
|
not abort the command and execution continues.
|
|||
|
|
|||
|
|
|||
|
%Superseding existing file
|
|||
|
Indicates that the file to be created as the result
|
|||
|
of an EW command already exists. If the output
|
|||
|
file is closed the old copy of the file will be
|
|||
|
deleted. The EK command may be used to "take back"
|
|||
|
the EW command.
|
|||
|
|
|||
|
%Search fail in iter
|
|||
|
Indicates that a search command has failed inside
|
|||
|
iteration brackets. A ; (semi-colon) command
|
|||
|
immediately following the search command can
|
|||
|
typically be used to suppress this message. After
|
|||
|
printing the message, the iteration is terminated,
|
|||
|
i.e., TECO simulates a 0; command.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
These error messages are listed alphabetically by their
|
|||
|
three-letter code. In general, these three-letter codes have the
|
|||
|
same meaning on all implementations, although not all error
|
|||
|
messages are produced by each implementation. The one-line error
|
|||
|
message given here is a paraphrasing of the message given, which
|
|||
|
may differ slightly from system to system.
|
|||
|
|
|||
|
Standard TECO PAGE 138
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
?ARG Improper Arguments
|
|||
|
Three arguments are given (a,b,c or H,c).
|
|||
|
|
|||
|
?BNI > not in iteration
|
|||
|
There is a close angle bracket not matched by an
|
|||
|
open angle bracket somewhere to its left. (Note:
|
|||
|
an iteration in a macro stored in a Q-register must
|
|||
|
be complete within the Q-register.)
|
|||
|
|
|||
|
?CCL CCL.SV not found or EG argument too long
|
|||
|
The EGcommand` command on OS/8 was unable to locate
|
|||
|
SYS:CCL.SV or the specified command has more than
|
|||
|
46 characters.
|
|||
|
|
|||
|
?CON Confused use of conditionals
|
|||
|
Conditionals, parenthesized arguments, and
|
|||
|
iterations must be properly nested. The user
|
|||
|
probably used some construct like: N"E...(...'
|
|||
|
where an iteration or parenthesized argument is
|
|||
|
begun in a conditional but not terminated in the
|
|||
|
same conditional.
|
|||
|
|
|||
|
?CPQ Can't pop into Q-register
|
|||
|
A ] command has been executed and there is nothing
|
|||
|
saved on the Q-register push down list.
|
|||
|
|
|||
|
?DEV Invalid device
|
|||
|
A file specification string in an E command
|
|||
|
contains an unknown device name.
|
|||
|
|
|||
|
?DTB Delete too big
|
|||
|
An nD command has been attempted which is not
|
|||
|
contained within the current page.
|
|||
|
|
|||
|
?ERR RSTS/E error message (RSTS/E only)
|
|||
|
Some RSTS/E monitor call failed. The error message
|
|||
|
text explains the error.
|
|||
|
|
|||
|
?FER File Error
|
|||
|
The file specified in an ER, EW or EB command was
|
|||
|
not found.
|
|||
|
|
|||
|
?FNF File not found "filespec"
|
|||
|
The requested input file could not be located. If
|
|||
|
this occurred within a macro the colon modified ER
|
|||
|
or EB command may be necessary.
|
|||
|
|
|||
|
?FUL Output Command would have overflowed output device
|
|||
|
The page of text currently in the text buffer will
|
|||
|
not fit in the open output file. Until enough free
|
|||
|
space can be obtained on the output device the file
|
|||
|
may have to be split. An EF command to close the
|
|||
|
current output file, followed by a new EW command
|
|||
|
|
|||
|
Standard TECO PAGE 139
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
to a temporary file may be used. The files should
|
|||
|
be concatenated when the space problem is
|
|||
|
alleviated.
|
|||
|
|
|||
|
?ICE Illegal ^E Command in Search Argument
|
|||
|
A search argument contains a ^E command that is
|
|||
|
either not defined or incomplete. The only valid
|
|||
|
^E commands in search arguments are: ^EA, ^ED,
|
|||
|
^EV, ^EW, ^EL, ^ES, ^E<NNN>, and ^E[A,B,C,...].
|
|||
|
|
|||
|
?IEC Illegal character "x" after E
|
|||
|
An invalid E command has been executed. The E
|
|||
|
character must be followed by an alphabetic to form
|
|||
|
a legal E command (i.e., ER or EX).
|
|||
|
|
|||
|
?IFC Illegal character "x" after F
|
|||
|
An invalid F command has been executed.
|
|||
|
|
|||
|
?IFN Illegal character "x" in filename
|
|||
|
The filespec as an argument to one of the E
|
|||
|
commands is unacceptable to the system. The file
|
|||
|
specification must be appropriate to the system in
|
|||
|
use.
|
|||
|
|
|||
|
?IIA Illegal insert arg
|
|||
|
A command of the form "nItext`" was attempted.
|
|||
|
Combining character (nI`) and text (Itext`)
|
|||
|
insertions is illegal.
|
|||
|
|
|||
|
?ILL Illegal command "x"
|
|||
|
An attempt has been made to execute an invalid TECO
|
|||
|
command.
|
|||
|
|
|||
|
?ILN Illegal number
|
|||
|
An 8 or 9 has been entered when the radix of TECO
|
|||
|
is set to octal.
|
|||
|
|
|||
|
?INP Input error
|
|||
|
The system has reported an error attempting to read
|
|||
|
the current input file. The text buffer may be
|
|||
|
corrupt. This operation may be retried, but if the
|
|||
|
error persists, you may have to return to a backup
|
|||
|
file.
|
|||
|
|
|||
|
?IPA Negative or 0 argument to P
|
|||
|
The argument preceding a P or PW command is
|
|||
|
negative or 0.
|
|||
|
|
|||
|
?IQC Illegal " character
|
|||
|
One of the valid " commands did not follow the ".
|
|||
|
Refer to Section 5.14 (conditional execution
|
|||
|
commands) for the legal set of commands.
|
|||
|
|
|||
|
Standard TECO PAGE 140
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
?IQN Illegal Q-register name "x"
|
|||
|
An illegal Q-register name was specified in one of
|
|||
|
the Q-register commands.
|
|||
|
|
|||
|
?IRA Illegal radix argument to ^R
|
|||
|
The argument to a ^R radix command must be 8, 10,
|
|||
|
or 16.
|
|||
|
|
|||
|
?ISA Illegal search arg
|
|||
|
The argument preceding a search command is 0. This
|
|||
|
argument must not be 0.
|
|||
|
|
|||
|
?ISS Illegal search string
|
|||
|
One of the search string special characters (^Q,
|
|||
|
^V, ^W, etc.) would have modified the search string
|
|||
|
delimiter (usually ESCAPE).
|
|||
|
|
|||
|
?IUC Illegal character "x" following ^
|
|||
|
The character following an ^ must have ASCII value
|
|||
|
between 100 and 137 inclusive or between 141 and
|
|||
|
172 inclusive.
|
|||
|
|
|||
|
?MAP Missing '
|
|||
|
Every conditional (opened with the " command) must
|
|||
|
be closed with the ' command.
|
|||
|
|
|||
|
?MEM Memory overflow
|
|||
|
Insufficient memory available to complete the
|
|||
|
current command. Make sure the Q-register area
|
|||
|
does not contain much unnecessary text. Breaking
|
|||
|
up the text area into multiple pages might be
|
|||
|
useful. (See section 5.19.)
|
|||
|
|
|||
|
?MLA Missing Left Angle Bracket
|
|||
|
There is a right angle bracket that has no matching
|
|||
|
left angle bracket. An iteration must be complete
|
|||
|
within the macro or command.
|
|||
|
|
|||
|
?MLP Missing (
|
|||
|
There is a right parenthesis that is not matched by
|
|||
|
a corresponding left parenthesis.
|
|||
|
|
|||
|
?MRA Missing Right Angle Bracket
|
|||
|
There is a left angle bracket that has no matching
|
|||
|
right angle bracket. An iteration must be complete
|
|||
|
within the macro or command.
|
|||
|
|
|||
|
?MRP Missing )
|
|||
|
There is a right parenthesis that is not matched by
|
|||
|
a corresponding left parenthesis.
|
|||
|
|
|||
|
Standard TECO PAGE 141
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
?MSC Missing Start of Conditional
|
|||
|
A ' command (end of conditional) was encountered.
|
|||
|
Every ' command must be matched by a preceding "
|
|||
|
(start of conditional) command.
|
|||
|
|
|||
|
?NAB No arg before ^_
|
|||
|
The ^_ command must be preceded by either a
|
|||
|
specific numeric argument or a command that returns
|
|||
|
a numeric value.
|
|||
|
|
|||
|
?NAC No arg before ,
|
|||
|
A command has been executed in which a , is not
|
|||
|
preceded by a numeric argument.
|
|||
|
|
|||
|
?NAE No arg before =
|
|||
|
The =, ==, or === command must be preceded by
|
|||
|
either a specific numeric argument or a command
|
|||
|
that returns a numeric value.
|
|||
|
|
|||
|
?NAP No arg before )
|
|||
|
A ) parenthesis has been encountered and is not
|
|||
|
properly preceded by a specific numeric argument or
|
|||
|
a command that returns a numeric value.
|
|||
|
|
|||
|
?NAQ No arg before "
|
|||
|
The " commands must be preceded by a single numeric
|
|||
|
argument on which the decision to execute the
|
|||
|
following commands or skip to the matching ' is
|
|||
|
based.
|
|||
|
|
|||
|
?NAS No arg before ;
|
|||
|
The ; command must be preceded by a single numeric
|
|||
|
argument on which the decision to execute the
|
|||
|
following commands or skip to the matching > is
|
|||
|
based.
|
|||
|
|
|||
|
?NAU No arg before U
|
|||
|
The U command must be preceded by either a specific
|
|||
|
numeric argument or a command that returns a
|
|||
|
numeric value.
|
|||
|
|
|||
|
?NCA Negative argument to ,
|
|||
|
A comma was preceded by a negative number.
|
|||
|
|
|||
|
?NYA Numeric argument with Y
|
|||
|
The Y command must not be preceded by either a
|
|||
|
numeric argument or a command that returns a
|
|||
|
numeric value.
|
|||
|
|
|||
|
?NYI Not yet implemented
|
|||
|
A command was issued which tries to invoke a
|
|||
|
feature not available on this implementation of
|
|||
|
TECO.
|
|||
|
|
|||
|
Standard TECO PAGE 142
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
?NFI No file for input
|
|||
|
Before issuing an input command, such as Y, it is
|
|||
|
necessary to open an input file by use of a command
|
|||
|
such as ER or EB.
|
|||
|
|
|||
|
?NFO No file for output
|
|||
|
Before issuing an output command such as N search
|
|||
|
or P it is necessary to open an output file by use
|
|||
|
of a command such as EW or EB.
|
|||
|
|
|||
|
?NPA Negative or 0 argument to P
|
|||
|
A P command was preceded by a negative or 0
|
|||
|
argument.
|
|||
|
|
|||
|
?NRO No room for output
|
|||
|
The output device is too full to accept the
|
|||
|
requested output file.
|
|||
|
|
|||
|
?NYI Not Yet Implemented
|
|||
|
A command was issued that is not yet implemented in
|
|||
|
this version of TECO.
|
|||
|
|
|||
|
?OFO Output file already open
|
|||
|
A command has been executed which tried to create
|
|||
|
an output file, but an output file currently is
|
|||
|
open. It is typically appropriate to use the EC or
|
|||
|
EK command as the situation calls for to close the
|
|||
|
output file.
|
|||
|
|
|||
|
?OUT Output error
|
|||
|
The system has reported an error attempting to do
|
|||
|
output to the output file. Make sure that output
|
|||
|
device did not become write locked. Use of the EF
|
|||
|
command (or EK if necessary) and another EW can be
|
|||
|
considered until the condition is fixed.
|
|||
|
|
|||
|
?PES Attempt to Pop Empty Stack
|
|||
|
A ] command (pop off q-register stack into a
|
|||
|
q-register) was encountered when there was nothing
|
|||
|
on the q-register stack.
|
|||
|
|
|||
|
?PDO Push-down list overflow
|
|||
|
The command string has become too complex.
|
|||
|
Simplify it.
|
|||
|
|
|||
|
?POP Attempt to move Pointer Off Page with "x"
|
|||
|
A J, C or R command has been executed which
|
|||
|
attempted to move the pointer off the page. The
|
|||
|
result of executing one of these commands must
|
|||
|
leave the pointer between 0 and Z, inclusive. The
|
|||
|
characters referenced by a D or m,nX command must
|
|||
|
also be within the buffer boundary.
|
|||
|
|
|||
|
Standard TECO PAGE 143
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
?SNI ; not in iteration
|
|||
|
A ; command has been executed outside of an open
|
|||
|
iteration bracket. This command may only be
|
|||
|
executed within iteration brackets.
|
|||
|
|
|||
|
?SRH Search failure "text"
|
|||
|
A search command not preceded by a colon modifier
|
|||
|
and not within an iteration has failed to find the
|
|||
|
specified "text". After an S search fails the
|
|||
|
pointer is left at the beginning of the buffer.
|
|||
|
After an N or _ search fails the last page of the
|
|||
|
input file has been input and, in the case of N,
|
|||
|
output, and the buffer is cleared. In the case of
|
|||
|
an N search it is usually necessary to close the
|
|||
|
output file and reopen it for continued editing.
|
|||
|
|
|||
|
?STL String too long
|
|||
|
A search or file name string is too long. This is
|
|||
|
most likely the result of a missing <DELIM> after
|
|||
|
the string.
|
|||
|
|
|||
|
?TAG Missing Tag !tag!
|
|||
|
The tag !tag! specified by an O command cannot be
|
|||
|
found. This tag must be in the same macro level as
|
|||
|
the O command referencing it.
|
|||
|
|
|||
|
?UTC Unterminated command "x"
|
|||
|
This is a general error which is usually caused by
|
|||
|
an unterminated insert, search, or filespec
|
|||
|
argument, an unterminated ^A message, an
|
|||
|
unterminated tag or comment (i.e., unterminated !
|
|||
|
construct), or a missing ' character which closes a
|
|||
|
conditional execution command.
|
|||
|
|
|||
|
?UTM Unterminated macro
|
|||
|
This error is the same as the ?UTC error except
|
|||
|
that the unterminated command was executing from a
|
|||
|
Q-register (i.e., it was a macro). (Note: An
|
|||
|
entire command sequence stored in a Q-register must
|
|||
|
be complete within the Q-register.)
|
|||
|
|
|||
|
?XAB Execution aborted
|
|||
|
Execution of TECO was aborted. This is usually due
|
|||
|
to the typing of <CTRL/C>.
|
|||
|
|
|||
|
?WLO System Device Write-Locked
|
|||
|
TECO-8 needs to write on the system device when it
|
|||
|
is running in less than 16K (less than 20K if VT52
|
|||
|
is present) so that it can later swap in overlays.
|
|||
|
|
|||
|
?YCA Y command aborted
|
|||
|
An attempt has been made to execute an Y or _
|
|||
|
search command with an output file open, that would
|
|||
|
|
|||
|
Standard TECO PAGE 144
|
|||
|
Appendix B
|
|||
|
|
|||
|
|
|||
|
cause text in the text buffer to be erased without
|
|||
|
outputting it to the output file. The ED command
|
|||
|
(section 5.16) controls this check.
|
|||
|
|
|||
|
?nnn I/O Error or Directive Error (RSX-11 only)
|
|||
|
All errors from the executive and file system are
|
|||
|
reported in this format, where nnn is the decimal
|
|||
|
I/O or directive error status. The accompanying
|
|||
|
message is the corresponding message from the
|
|||
|
QIOSYM message file. A complete list of I/O and
|
|||
|
directive errors appears in appendices to the
|
|||
|
various Executive reference manuals and in the
|
|||
|
IAS/RSX-11 I/O Operations Reference Manual.
|
|||
|
|
|||
|
Standard TECO PAGE 145
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
APPENDIX C
|
|||
|
|
|||
|
|
|||
|
Incompatible, Obsolete, and System-Specific Commands
|
|||
|
|
|||
|
This appendix describes commands that are peculiar to specific
|
|||
|
operating systems. These commands fall into many categories.
|
|||
|
Some are obsolete, and are kept around only as a convenience to
|
|||
|
the user. Others are so system specific or so obscure that it
|
|||
|
was felt best not to include them in the main body of the manual.
|
|||
|
Some are incompatible across operating systems. Some are new
|
|||
|
commands that have not become firmly established and may change
|
|||
|
in the future. In general, use these commands at your own risk
|
|||
|
and with the understanding that in future releases of TECO, these
|
|||
|
commands may change or go away completely. Implementors of TECO
|
|||
|
on other operating systems should contact the TECO SIG before
|
|||
|
implementing any of these features.
|
|||
|
|
|||
|
|
|||
|
C.1 SPECIFIC FEATURES OF TECO-11
|
|||
|
|
|||
|
|
|||
|
C.1.1 TECO Commands
|
|||
|
|
|||
|
Command Description
|
|||
|
|
|||
|
m,nStext` Performs the same function as the nS command, but
|
|||
|
m serves a bound limit for the search. If the
|
|||
|
search string can be found without moving the
|
|||
|
pointer more than ABS(m)-1 places, the search
|
|||
|
succeeds and the pointer is repositioned to
|
|||
|
immediately after the last character of the
|
|||
|
string. Otherwise, the pointer is left unchanged.
|
|||
|
The ^Q operator, described below, is useful in
|
|||
|
conjunction with this command.
|
|||
|
|
|||
|
Note that m,Stext` is identical to m,1Stext` and
|
|||
|
m,-Stext` is identical to m,-1Stext`.
|
|||
|
|
|||
|
m,-nStext` Performs the same function as the m,nS command,
|
|||
|
but searches in the reverse direction.
|
|||
|
|
|||
|
0,nStext` Performs the same function as the nS command,
|
|||
|
except that the pointer position will remain
|
|||
|
unchanged on search string failure. (Essentially
|
|||
|
an unbounded search with no pointer movement on
|
|||
|
failure.)
|
|||
|
|
|||
|
G* Get most recent filespec string. The asterisk
|
|||
|
represents TECO's filespec string area, which
|
|||
|
contains the fully expanded filespec of the last E
|
|||
|
command (see appendices). Copy the contents of
|
|||
|
the filespec string area into the buffer at the
|
|||
|
|
|||
|
Standard TECO PAGE 146
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
current position of the buffer pointer, leaving
|
|||
|
the pointer positioned after the last character
|
|||
|
copied.
|
|||
|
|
|||
|
:G* Print the contents of the filespec buffer on the
|
|||
|
terminal.
|
|||
|
|
|||
|
G_ Get most recent search string. The underscore
|
|||
|
(backarrow) represents TECO's search string area.
|
|||
|
Copy the contents of the search string area into
|
|||
|
the buffer at the current position of the buffer
|
|||
|
pointer, leaving the pointer positioned after the
|
|||
|
last character copied.
|
|||
|
|
|||
|
:G_ Print the contents of the search string buffer on
|
|||
|
the terminal.
|
|||
|
|
|||
|
n^Q n^QC is identical to nL. The n^Q command returns
|
|||
|
the number of characters between the buffer
|
|||
|
pointer and the nth line separator (both positive
|
|||
|
and negative). This command converts line
|
|||
|
oriented command argument values into character
|
|||
|
oriented argument values. Used after an
|
|||
|
expression.
|
|||
|
|
|||
|
m,-256+n:W Inserts characters at "dot" until... Characters
|
|||
|
are read (echo off) from the terminal and inserted
|
|||
|
at "dot" until and according to the microcoded
|
|||
|
bits in n. The terminating character is not
|
|||
|
inserted.
|
|||
|
|
|||
|
128 => Return immediately if no typed characters
|
|||
|
64 => Terminate on any character
|
|||
|
32 => Don't keep screen updated (i.e., no -1W)
|
|||
|
8 => Treat m as terminating character(s)
|
|||
|
4 => Convert any alphabetic inserts to upper
|
|||
|
case
|
|||
|
2 => Terminate on <TAB>
|
|||
|
1 => Screen is initially O.K.
|
|||
|
|
|||
|
Control characters (octal 0 through 37 and 177
|
|||
|
except <TAB>) are always terminating characters.
|
|||
|
The returned value has the terminating character
|
|||
|
code in low byte (octal 0 through 177 or 377 for
|
|||
|
returned immediately). The sign bit is set if one
|
|||
|
or more inserts were done. The return value may
|
|||
|
be a character code that normally would have been
|
|||
|
inserted, but could not be for some reason (e.g.,
|
|||
|
convert alphabetic inserts to upper case
|
|||
|
requested, but not supported in this
|
|||
|
implementation).
|
|||
|
|
|||
|
The m of m,-256+n:W is always optional. If bit
|
|||
|
|
|||
|
Standard TECO PAGE 147
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
value 8 of n is set, m contains up to two
|
|||
|
additional termination character codes, one in the
|
|||
|
low 8 bits (low byte) and another in the high 8
|
|||
|
bits (high byte). If only one extra termination
|
|||
|
character is desired, it is placed simply placed
|
|||
|
in m thus setting the high 8 bits to zero (which
|
|||
|
is already a termination character). If bit value
|
|||
|
8 of n is not set, passing the m argument is
|
|||
|
undefined...
|
|||
|
|
|||
|
|
|||
|
C.1.2 String Build Constructs
|
|||
|
|
|||
|
Construct Description
|
|||
|
|
|||
|
<CTRL/E>Q* <CTRL/E>Q* indicates that the string stored in the
|
|||
|
filespec buffer is to be used in the position
|
|||
|
occupied by the ^EQ* in the search string.
|
|||
|
|
|||
|
<CTRL/E>Q_ <CTRL/E>Q_ indicates that the string stored in the
|
|||
|
search string buffer is to be used in the position
|
|||
|
occupied by the ^EQ_ in the search string.
|
|||
|
|
|||
|
Standard TECO PAGE 148
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
C.2 SPECIFIC FEATURES OF RT-11
|
|||
|
|
|||
|
[For "RT-11 Operating Characteristics", refer to Appendix D.]
|
|||
|
|
|||
|
|
|||
|
C.3 SPECIFIC FEATURES OF RSTS/E
|
|||
|
|
|||
|
[For "RSTS/E Operating Characteristics", refer to Appendix E.]
|
|||
|
|
|||
|
TECO COMMANDS
|
|||
|
|
|||
|
Command Description
|
|||
|
|
|||
|
:EGRTS` Switch to private default run-time-system.
|
|||
|
|
|||
|
:EGRTS foo` Switch to RTS "foo".
|
|||
|
|
|||
|
:EGFSS string` File string scan "string".
|
|||
|
|
|||
|
:EGCCL cmd` Try "cmd" as a CCL command.
|
|||
|
|
|||
|
:EGRUN file` Try to run "file".
|
|||
|
|
|||
|
:EGRUN file=xx`
|
|||
|
Try to run "file" with "xx" placed in core common.
|
|||
|
|
|||
|
:EGEMT` Issue a monitor directive. The FIRQB is loaded
|
|||
|
from Q-registers A through P and the XRB is loaded
|
|||
|
from Q-registers Q through W. The low byte of the
|
|||
|
value in Q-register A is the monitor EMT code to
|
|||
|
issue. If the high byte of the value in
|
|||
|
Q-register A is >0 then the text part of
|
|||
|
Q-register A is put into the XRB for a 'write'
|
|||
|
(XRLEN= size of A, XRBC=size of A, XRLOC->A); if
|
|||
|
Q-register A high byte is <0 then the text part of
|
|||
|
Q-register A is put into the XRB for a 'read'
|
|||
|
(XRLEN=size of A, XRBC=0, XRLOC->A).
|
|||
|
Returned value is -1 for success, 0 for
|
|||
|
unrecognized command, or >0 for the RSTS/E error
|
|||
|
code. The FIRQB is placed in the numeric part of
|
|||
|
Q-regs A, B, C, D, E, F, G, H, I, J, K, L, M, N,
|
|||
|
O, P. The XRB is placed in the numeric part of
|
|||
|
Q-regs Q, R, S, T, U, V, W.
|
|||
|
|
|||
|
See also section 5.1.2, File Specification Switches.
|
|||
|
|
|||
|
Standard TECO PAGE 149
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
C.4 SPECIFIC FEATURES OF RSX-11/M, RSX-11/D, and IAS
|
|||
|
|
|||
|
[For "RSX-11 Operating Characteristics", refer to Appendix F.]
|
|||
|
|
|||
|
Command Description
|
|||
|
|
|||
|
<CTRL/Z><CTRL/Z><CTRL/Z>
|
|||
|
Returns control to the operating system
|
|||
|
immediately. Equivalent to typing
|
|||
|
<CTRL/C><CTRL/C>.
|
|||
|
|
|||
|
See also section 5.1.2, File Specification Switches.
|
|||
|
|
|||
|
|
|||
|
C.5 SPECIFIC FEATURES OF VAX/VMS
|
|||
|
|
|||
|
[For "VAX/VMS Operating Characteristics", refer to Appendix G.]
|
|||
|
|
|||
|
Command Description
|
|||
|
|
|||
|
<CTRL/Z><CTRL/Z><CTRL/Z>
|
|||
|
Returns control to VAX/VMS immediately.
|
|||
|
Equivalent to typing <CTRL/C><CTRL/C>.
|
|||
|
|
|||
|
EG` Exit with special status
|
|||
|
TECO's normal exit status code (as reflected by
|
|||
|
the DCL symbols $STATUS and $SEVERITY) is 1
|
|||
|
(success). If the exit was due to an EG` command,
|
|||
|
the exit status code is 9 (also success).
|
|||
|
|
|||
|
:EGSYM symbol_name symbol_value`
|
|||
|
Defines the DCL local symbol "symbol_name" with a
|
|||
|
value string of "symbol_value". Useful for
|
|||
|
creating symbols that will be used by a command
|
|||
|
procedure upon TECO's exit.
|
|||
|
|
|||
|
See also section 5.1.2, File Specification Switches.
|
|||
|
|
|||
|
|
|||
|
C.6 SPECIFIC FEATURES OF OS/8
|
|||
|
|
|||
|
[For "OS/8 Operating Characteristics", refer to Appendix H.]
|
|||
|
|
|||
|
Command Description
|
|||
|
|
|||
|
<CTRL/S> If used as the first keystroke after TECO's
|
|||
|
prompt, this command is the same as *Z, that is,
|
|||
|
it saves the last command string in Q-register Z.
|
|||
|
This command echoes as *Z and does not have to be
|
|||
|
followed by a <DELIM>.
|
|||
|
|
|||
|
See also section 5.1.2, File Specification Switches.
|
|||
|
|
|||
|
Standard TECO PAGE 150
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
C.7 SPECIFIC FEATURES OF TOPS-10
|
|||
|
|
|||
|
[For "TOPS-10 Operating Characteristics", refer to Appendix I.]
|
|||
|
|
|||
|
Command Description
|
|||
|
|
|||
|
nEM Positions a magtape. You must open the magtape
|
|||
|
for input with an appropriate ER command before it
|
|||
|
can be positioned. Exact positioning depends on
|
|||
|
the value of n, as described below. You must
|
|||
|
reopen the magtape for output before you can
|
|||
|
output to it.
|
|||
|
[TECO-10 only]
|
|||
|
|
|||
|
Value Action
|
|||
|
|
|||
|
1EM Rewind the currently-selected input
|
|||
|
magtape to load point. EM is identical
|
|||
|
to 1EM.
|
|||
|
|
|||
|
3EM Write an end-of-file record.
|
|||
|
|
|||
|
6EM Skip ahead one record.
|
|||
|
|
|||
|
7EM Back up one record.
|
|||
|
|
|||
|
8EM Skip ahead to logical end of tape
|
|||
|
(defined by two successive end-of-file
|
|||
|
marks). Leave the magtape positioned
|
|||
|
between the two end-of-file marks so
|
|||
|
that successive output correctly
|
|||
|
overwrites the second EOF.
|
|||
|
|
|||
|
9EM Rewind and unload.
|
|||
|
|
|||
|
11EM Write 3 inches of blank tape.
|
|||
|
|
|||
|
14EM Advance tape one file. This leaves the
|
|||
|
tape positioned so that the next item
|
|||
|
read will be the first record of the
|
|||
|
next file (or the second end-of-file
|
|||
|
mark at the logical end-of-tape).
|
|||
|
|
|||
|
15EM Backspace tape one file. This leaves
|
|||
|
the tape positioned so that the next
|
|||
|
item read will be the end-of-file mark
|
|||
|
preceding the file backspaced over
|
|||
|
(unless the file is the first file on
|
|||
|
the tape).
|
|||
|
|
|||
|
n^Q n^QC is identical to nL. This command returns the
|
|||
|
number of characters between the buffer pointer
|
|||
|
and the nth line separator (both positive and
|
|||
|
|
|||
|
Standard TECO PAGE 151
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
negative). This command converts line oriented
|
|||
|
command argument values into character oriented
|
|||
|
argument values. Used after an expression.
|
|||
|
|
|||
|
F0 Pointer position of start of window. Same as 6:W.
|
|||
|
|
|||
|
FZ Pointer position of end of window.
|
|||
|
|
|||
|
FH Same as F0,FZ.
|
|||
|
|
|||
|
FX Software maintained horizontal coordinate of
|
|||
|
location of cursor on screen (0-origin). Updated
|
|||
|
by TECO on terminal output. If TECO cannot
|
|||
|
determine the updated location of the cursor, this
|
|||
|
value is set to -1.
|
|||
|
|
|||
|
nFX Set value of FX register to n.
|
|||
|
|
|||
|
FY Software maintained vertical coordinate of
|
|||
|
location of cursor on screen (0-origin). Updated
|
|||
|
by TECO on terminal output. If TECO cannot
|
|||
|
determine the updated location of the cursor, this
|
|||
|
value is set to -1.
|
|||
|
|
|||
|
nFY Set value of FY register to n.
|
|||
|
|
|||
|
FP Equivalent to FY,FX.
|
|||
|
|
|||
|
m,nFP Equivalent to mFYnFX.
|
|||
|
|
|||
|
m,nFF Updates FY and FX registers as if the m,nT command
|
|||
|
were executed.
|
|||
|
|
|||
|
nFF Assumes that the scope cursor is pointing at the
|
|||
|
character that is just to the right of the text
|
|||
|
buffer pointer (the current character). Then this
|
|||
|
command advances n screen lines and goes to the
|
|||
|
end of that line and returns that pointer
|
|||
|
position.
|
|||
|
|
|||
|
nFQq Compares characters beginning at dot with
|
|||
|
characters beginning at the nth character in
|
|||
|
Q-register q (0-origin). When a match fails or
|
|||
|
the match ends, this command moves the pointer to
|
|||
|
after the last character that matched and returns
|
|||
|
the index into the Q-register.
|
|||
|
|
|||
|
E=filespec` Renames the input file.
|
|||
|
|
|||
|
E&filespec` Run the specified program when TECO exits. Can
|
|||
|
take a numeric argument which is the run-offset.
|
|||
|
0 is the default.
|
|||
|
|
|||
|
Standard TECO PAGE 152
|
|||
|
Appendix C
|
|||
|
|
|||
|
|
|||
|
m,nE* Does an arbitrary TRMOP to your terminal.
|
|||
|
[Not available on TOPS-20.]
|
|||
|
|
|||
|
::Gq Same as :Gq but types literally.
|
|||
|
|
|||
|
::ER Same as ER but no defaults are used.
|
|||
|
|
|||
|
^Z Closes output file and exits from TECO.
|
|||
|
|
|||
|
^P Returns current page number.
|
|||
|
|
|||
|
n^P Executes P commands until page n has been reached.
|
|||
|
|
|||
|
n^Y Executes Y commands until page n has been reached.
|
|||
|
|
|||
|
n,m= Same as m=n^T.
|
|||
|
|
|||
|
m,n:^T Does an arbitrary TTCALL.
|
|||
|
|
|||
|
|
|||
|
See also section 5.1.2, File Specification Switches.
|
|||
|
|
|||
|
Standard TECO PAGE 153
|
|||
|
Appendix D
|
|||
|
|
|||
|
|
|||
|
APPENDIX D
|
|||
|
|
|||
|
|
|||
|
RT-11 OPERATING CHARACERISTICS
|
|||
|
|
|||
|
|
|||
|
D.1 STARTUP
|
|||
|
|
|||
|
TECO is started with the
|
|||
|
|
|||
|
.R TECO
|
|||
|
|
|||
|
command. TECO is now immediately ready to accept commands. The
|
|||
|
text buffer and Q-register areas are empty.
|
|||
|
|
|||
|
The EDIT command
|
|||
|
|
|||
|
.EDIT/TECO filespec
|
|||
|
|
|||
|
is used to edit an already existing file. It is equivalent to
|
|||
|
|
|||
|
.R TECO
|
|||
|
*EBfilespec`Y``
|
|||
|
|
|||
|
For those RT-11 users that will use TECO as the primary editor, a
|
|||
|
monitor SET command is provided:
|
|||
|
|
|||
|
.SET EDITOR TECO
|
|||
|
|
|||
|
Once this command is issued, the /TECO option on the EDIT command
|
|||
|
is no longer necessary since the default editor is now TECO.
|
|||
|
Since this SET command only has affect between system bootstraps,
|
|||
|
it is recommended that the command be placed in the appropriate
|
|||
|
startup file (e.g., STARTS.COM).
|
|||
|
|
|||
|
Now, assuming the SET command has been issued, the command
|
|||
|
|
|||
|
.EDIT filespec
|
|||
|
|
|||
|
can be used to edit an already existing file.
|
|||
|
|
|||
|
The standard RT-11 EDIT command options are all available with
|
|||
|
TECO.
|
|||
|
|
|||
|
.EDIT/CREATE filespec
|
|||
|
.EDIT/INSPECT filespec
|
|||
|
.EDIT/OUTPUT:filespec filespec
|
|||
|
|
|||
|
Another option, /EXECUTE, is also available:
|
|||
|
|
|||
|
.EDIT/EXECUTE[:string] filespec
|
|||
|
|
|||
|
The /EXECUTE option causes TECO to process the filespec (assumed
|
|||
|
|
|||
|
Standard TECO PAGE 154
|
|||
|
Appendix D
|
|||
|
|
|||
|
|
|||
|
.TEC filetype) as a set of TECO commands. If "string" is used,
|
|||
|
the string is placed into TECO's text buffer. If "string"
|
|||
|
contains only alphanumeric characters, it does not have to be
|
|||
|
enclosed in quotes. If it is to contain blanks, it must be
|
|||
|
quoted with single quotes. The equivalent TECO commands would be
|
|||
|
|
|||
|
.R TECO
|
|||
|
*ERfilespec`YHXZHKIstring`MZ``
|
|||
|
|
|||
|
Note the input file remains open and can provide more input to
|
|||
|
the macro.
|
|||
|
|
|||
|
|
|||
|
D.2 FILE SPECIFICATION
|
|||
|
|
|||
|
The file access commands ER, EB, EI, and EW accept a file
|
|||
|
specification in the standard RT-11 format:
|
|||
|
|
|||
|
dev:filename.type
|
|||
|
|
|||
|
in which dev: is a physical device name or a user assigned
|
|||
|
logical name; if dev: is not specified, the default DK: is
|
|||
|
assumed. The filename field must be specified in the commands
|
|||
|
ER, EB, EI, and EW and be a legal RT-11 filename. The type field
|
|||
|
is a file extension and must be explicitly given if used (there
|
|||
|
is no default). The EB and EW commands also accept the extended
|
|||
|
notation for an output file size
|
|||
|
|
|||
|
dev:filename.type[n]
|
|||
|
|
|||
|
The optional [n] specifies the output file size where n is the
|
|||
|
number of blocks to be allocated.
|
|||
|
|
|||
|
|
|||
|
D.3 BACKUP FILES
|
|||
|
|
|||
|
The EB command maintains one level of file backup on RT-11. The
|
|||
|
pre-edited input file name is changed to
|
|||
|
|
|||
|
filename.BAK
|
|||
|
|
|||
|
before the new output file is closed with the original name.
|
|||
|
Only normal file closing commands (EC, EF, EG, and EX) cause this
|
|||
|
renaming to happen. If TECO is aborted or the output file is
|
|||
|
purged by the EK command, the input filename remains unchanged.
|
|||
|
Note only one .BAK file for a given name is kept; earlier .BAK
|
|||
|
backup files are deleted each time a new backup file is created.
|
|||
|
|
|||
|
A good policy to follow when editing is to close the edited file
|
|||
|
frequently enough so that an unexpected incident would not cause
|
|||
|
a substantial loss of work. Files should be backed up regularly.
|
|||
|
TECO has the power to let an unsuspecting user alter a good file
|
|||
|
into a completely useless state. The SRCCOM program can be used
|
|||
|
|
|||
|
Standard TECO PAGE 155
|
|||
|
Appendix D
|
|||
|
|
|||
|
|
|||
|
to verify an editing session.
|
|||
|
|
|||
|
|
|||
|
D.4 EXIT AND GO
|
|||
|
|
|||
|
If TECO is exited via the EGstring` command, the string is passed
|
|||
|
to the system as the next command to execute. This string may be
|
|||
|
any valid command or an indirect command file specification.
|
|||
|
|
|||
|
|
|||
|
D.5 REENTER AND CLOSE
|
|||
|
|
|||
|
The RT-11 REENTER command may always be used to continue TECO.
|
|||
|
Its primary differences from running TECO is that when REENTER is
|
|||
|
used, the text buffer and Q-register areas are unmodified, as
|
|||
|
opposed to when TECO is run the text buffer and Q-register areas
|
|||
|
are cleared. The input and output file are always lost upon
|
|||
|
reentering TECO. If an output file was open before reentering
|
|||
|
TECO, the file will have to be recreated with the appropriate
|
|||
|
E-command. (Note that the monitor commands GT ON, GT OFF, LOAD,
|
|||
|
and UNLOAD disallow a REENTER.)
|
|||
|
|
|||
|
The output file is not closed if TECO is aborted. The RT-11
|
|||
|
CLOSE command can be used to make the output file permanent, but
|
|||
|
be aware that the output file will not be complete because of
|
|||
|
internal buffers that TECO keeps. TECO may be reentered after a
|
|||
|
CLOSE command.
|
|||
|
|
|||
|
|
|||
|
D.6 FILE RECOVERY
|
|||
|
|
|||
|
TECO can be a useful tool in recovering ASCII files lost on a
|
|||
|
block replaceable device. TECO allows block replaceable devices
|
|||
|
to be opened in a non-file structured mode. This gives the user
|
|||
|
the capability to open a disk and access ASCII data anywhere on
|
|||
|
it, independent of file boundaries. The command
|
|||
|
|
|||
|
ERdev:`
|
|||
|
|
|||
|
is used to open the device at which point _ (underscore or
|
|||
|
backarrow) searches may be used to locate specific ASCII data and
|
|||
|
transfer it to new output files. Note that files tend to get
|
|||
|
reproduced, in whole or part, many places on a block replaceable
|
|||
|
device; be sure to verify that any given text is indeed complete
|
|||
|
and the correct version.
|
|||
|
|
|||
|
|
|||
|
D.7 SYSTEM CRASH RECOVERY
|
|||
|
|
|||
|
TECO and RT-11 are highly reliable, but if during an important
|
|||
|
edit session a random system failure should occur, the following
|
|||
|
procedure may help save some or all of the editing.
|
|||
|
|
|||
|
Standard TECO PAGE 156
|
|||
|
Appendix D
|
|||
|
|
|||
|
|
|||
|
1. Bootstrap the system
|
|||
|
|
|||
|
2. Immediately perform a SAVE command to save as much of
|
|||
|
memory as possible into a file on SY:. The address
|
|||
|
range form of the SAVE command must be used. The SAVE
|
|||
|
command will not allow any part of the monitor to be
|
|||
|
saved, e.g., if you have a 28K system and are running SJ
|
|||
|
you cannot save 28K but only 26.3K.
|
|||
|
|
|||
|
3. Perform standard startup procedures, e.g., DATE.
|
|||
|
|
|||
|
4. Use TECO on the SAVEd file to try and recover useful
|
|||
|
parts of the edit.
|
|||
|
|
|||
|
|
|||
|
D.8 VT11 GRAPHICS SUPPORT
|
|||
|
|
|||
|
If the monitor supports the VT11 graphics processor (GT ON and
|
|||
|
GT OFF work) TECO will automatically start up in display mode,
|
|||
|
adjusting to both the size of the display screen and to the
|
|||
|
presence or absence of the scroller.
|
|||
|
|
|||
|
If the display fails to start with a working VT11, TECO has
|
|||
|
decided that there is not enough free memory and will not
|
|||
|
allocate the display file buffer or start the display.
|
|||
|
|
|||
|
See Section 5.17 for a description of the available commands to
|
|||
|
interact with the display.
|
|||
|
|
|||
|
Various aspects of the display screen become immediately obvious
|
|||
|
upon seeing them; the text pointer, its position and shape and
|
|||
|
its position between lines; wrap around of more than 72
|
|||
|
characters per line; the scroller interaction and so on.
|
|||
|
Experiment with a scratch file for more familiarity.
|
|||
|
|
|||
|
Standard TECO PAGE 157
|
|||
|
Appendix E
|
|||
|
|
|||
|
|
|||
|
APPENDIX E
|
|||
|
|
|||
|
|
|||
|
RSTS/E OPERATING CHARACERISTICS
|
|||
|
|
|||
|
|
|||
|
E.1 STARTUP
|
|||
|
|
|||
|
RSTS supports all of the standard TECO invocation commands,
|
|||
|
namely
|
|||
|
|
|||
|
TECO
|
|||
|
TECO filespec
|
|||
|
TECO filespec=filespec
|
|||
|
MAKE filespec
|
|||
|
MUNG filespec
|
|||
|
MUNG filespec,text
|
|||
|
|
|||
|
The CCL command switches /DETACH and /SIZE:n (or /SIZE:+n) can be
|
|||
|
used with TECO. If /DETACH is used and the user's detached-job
|
|||
|
quota has not yet been reached, TECO will detach the job before
|
|||
|
any further processing. If /SIZE:n is used, TECO will pre-expand
|
|||
|
the text and Q-register storage area to nK. If /SIZE:+n is used,
|
|||
|
TECO will set the text storage and Q-register storage area to
|
|||
|
n+4K initially (TECO's default startup size is 4K).
|
|||
|
|
|||
|
|
|||
|
E.2 FILE SPECIFICATION
|
|||
|
|
|||
|
The file access commands ER, EB, EW, and EI accept a file
|
|||
|
specification in the standard RSTS/E format:
|
|||
|
|
|||
|
dev:[p,pn]filename.ext
|
|||
|
|
|||
|
in which dev: is a physical device name or a logical device
|
|||
|
name; if dev: is not specified, the public structure is
|
|||
|
assumed. If [p,pn] is not specified, the user's current logged
|
|||
|
in account is assumed. The filename field must be specified
|
|||
|
whenever the device name references a file structured device.
|
|||
|
The .ext field is a file extension and must be explicitly given
|
|||
|
if used. There is no default extension except for EI commands
|
|||
|
which default the .ext field to .TEC.
|
|||
|
|
|||
|
The file specification switches /n, /B+, /, and /B2 may be
|
|||
|
applied to the ER, EW, and EB commands. These switches invoke
|
|||
|
special handling of program lines containing <LF> or &
|
|||
|
continuation characters. See Appendix J for more information.
|
|||
|
|
|||
|
The file specification switch /B causes TECO to handle the file
|
|||
|
as a stream of 8-bit binary characters; normal ASCII format
|
|||
|
processing (such as removal of null characters) is not done.
|
|||
|
|
|||
|
The file specification switches /RONLY, /MODE:n, and
|
|||
|
|
|||
|
Standard TECO PAGE 158
|
|||
|
Appendix E
|
|||
|
|
|||
|
|
|||
|
/CLUSTERSIZE:n can be included in a file specification. TECO
|
|||
|
automatically opens any disk input file in /RONLY mode. The file
|
|||
|
size switches /FILESIZE:n and /SIZE:n might leave an output file
|
|||
|
larger than the amount of data output by TECO. These file size
|
|||
|
switches are therefore illegal and produce an error if included
|
|||
|
in a file specification.
|
|||
|
|
|||
|
The EB and EW commands also accept the extended notation for an
|
|||
|
output file protection code
|
|||
|
|
|||
|
dev:[p,pn]filename.ext<prot>
|
|||
|
|
|||
|
The optional <prot> specifies the output file protection code.
|
|||
|
|
|||
|
|
|||
|
E.3 BACKUP FILES
|
|||
|
|
|||
|
The EB command maintains one level of file backup on RSTS/E. The
|
|||
|
pre-edited input file name is changed to
|
|||
|
|
|||
|
filename.BAK
|
|||
|
|
|||
|
before the new output file is closed with the original name.
|
|||
|
Only normal file closing commands (EC, EF, EG, and EX) cause this
|
|||
|
renaming to happen. If TECO is aborted or the output file is
|
|||
|
purged by the EK command, the input filename remains unchanged.
|
|||
|
Note only one .BAK file for a given name is kept; earlier .BAK
|
|||
|
backup files are deleted each time a new backup file is created.
|
|||
|
|
|||
|
A good policy to follow when editing is to close the edited file
|
|||
|
frequently enough so that an unexpected incident would not cause
|
|||
|
a substantial loss of work. Files should be backed up regularly.
|
|||
|
TECO has the power to let an unsuspecting user alter a good file
|
|||
|
into a completely useless state. The FILCOM program can be used
|
|||
|
to verify an editing session.
|
|||
|
|
|||
|
|
|||
|
E.4 EXIT AND GO
|
|||
|
|
|||
|
If TECO is exited via the EGstring` command, the "string" is
|
|||
|
executed as a RSTS/E CCL command after the input and output
|
|||
|
file(s) are closed.
|
|||
|
|
|||
|
|
|||
|
E.5 ET FLAG HANDLING
|
|||
|
|
|||
|
Bit 6 (detach) is handled specially by TECO. Every time the ET
|
|||
|
flag is read (used as a numeric value), TECO ensures that Bit 6
|
|||
|
is on if the job is attached or off if the job is detached. This
|
|||
|
allows a TECO macro to check for "detachedness". If an attempt
|
|||
|
is made to set Bit 6 and the user's detached-job quota has been
|
|||
|
reached, the request is ignored and Bit 6 will read back as a 0
|
|||
|
(assuming the job is attached). If Bit 6 is set and the user's
|
|||
|
|
|||
|
Standard TECO PAGE 159
|
|||
|
Appendix E
|
|||
|
|
|||
|
|
|||
|
detached-job quota has not yet been reached, the job will become
|
|||
|
detached. Further reading of Bit 6 will return a 1, indicating
|
|||
|
the detached condition.
|
|||
|
|
|||
|
Standard TECO PAGE 160
|
|||
|
Appendix F
|
|||
|
|
|||
|
|
|||
|
APPENDIX F
|
|||
|
|
|||
|
|
|||
|
RSX-11 OPERATING CHARACERISTICS
|
|||
|
|
|||
|
|
|||
|
F.1 STARTUP
|
|||
|
|
|||
|
RSX-11 systems support all of the standard TECO invocation
|
|||
|
commands, namely
|
|||
|
|
|||
|
TECO
|
|||
|
TECO filespec
|
|||
|
TECO filespec=filespec
|
|||
|
MAKE filespec
|
|||
|
MUNG filespec
|
|||
|
MUNG filespec,text
|
|||
|
|
|||
|
If any of these commands are not recognized by the system, check
|
|||
|
with your system manager to see that TECO is properly installed.
|
|||
|
|
|||
|
TECO macros may also be invoked with the command
|
|||
|
|
|||
|
TECO @filespec
|
|||
|
|
|||
|
It is exactly equivalent to
|
|||
|
|
|||
|
MUNG filespec
|
|||
|
|
|||
|
In systems supporting dynamic task expansion, TECO will expand
|
|||
|
its buffer space as necessary. Also, TECO'S buffer space may be
|
|||
|
explicitly allocated in the startup command
|
|||
|
|
|||
|
RUN $TEC/INC=n
|
|||
|
|
|||
|
|
|||
|
F.2 INITIALIZATION
|
|||
|
|
|||
|
TECO searches for the TECO.INI startup file in the current
|
|||
|
default device and directory. TECO's memory, in which a plain
|
|||
|
TECO command edits the file last edited with a TECO filespec or a
|
|||
|
MAKE filespec command, is implemented with a file named
|
|||
|
TECF00.TMP, also stored in the current default device and
|
|||
|
directory.
|
|||
|
|
|||
|
The initial value of the ED flag is always 1.
|
|||
|
|
|||
|
When TECO is initially invoked it will automatically set the ET
|
|||
|
and EU flags according to the user's terminal characteristics.
|
|||
|
If the terminal supports CRT style rubouts, then bit 1 of the ET
|
|||
|
flag is set to do the same in TECO. If the terminal supports
|
|||
|
lower case type in, then bit 2 of the ET flag is set and the EU
|
|||
|
flag is set to -1 to turn off case flagging. If the terminal is
|
|||
|
|
|||
|
Standard TECO PAGE 161
|
|||
|
Appendix F
|
|||
|
|
|||
|
|
|||
|
a CRT type terminal and the version of TECO includes the screen
|
|||
|
support package, then bit 9 of the ET flag is set. While the
|
|||
|
command line is being processed, bit 7 of the ET flag is also set
|
|||
|
to cause TECO to exit should any errors occurr. ET bit 7 is
|
|||
|
cleared every time TECO reaches prompt (*) level.
|
|||
|
|
|||
|
|
|||
|
F.3 FILE SPECIFICATION
|
|||
|
|
|||
|
The file access commands ER, EB, EW, and EI accept a file
|
|||
|
specification in the standard RSX-11 format:
|
|||
|
|
|||
|
dev:[p,pn]filename.typ;version
|
|||
|
|
|||
|
in which dev: is a physical device name or a logical device
|
|||
|
name; if dev: is not specified, SY: is assumed. If [p,pn] is
|
|||
|
not specified, the user's current default directory is assumed.
|
|||
|
The filename field must be specified whenever the device name
|
|||
|
references a file structured device. The typ field is a file
|
|||
|
type and must be explicitly given if used. There is no default
|
|||
|
type except for EI commands which default the .typ field to .TEC.
|
|||
|
|
|||
|
The /B2 file specification switch may be applied to the ER, EW,
|
|||
|
and EB commands and invokes special handling of program lines
|
|||
|
containing & continuation characters. See Appendix J for more
|
|||
|
information.
|
|||
|
|
|||
|
The switch /RW may be applied to any file specification in an ER,
|
|||
|
EW, and EI command. If the file specification references a
|
|||
|
magtape, the tape is rewound before the file is opened. Note
|
|||
|
that for output files, this has the effect of zeroing the tape.
|
|||
|
The /RW switch is ignored for all other device types.
|
|||
|
|
|||
|
The presence of version numbers in Files-11 causes file
|
|||
|
processing to behave slightly differently under RSX-11 than under
|
|||
|
other operating systems. For example, no .BAK files are used;
|
|||
|
each execution of an EB command simply produces a new version of
|
|||
|
the file. Thus a user may retain any level of backup he feels to
|
|||
|
be comfortable. It also means that one must occasionally delete
|
|||
|
obsolete files to avoid cluttering the disk. Thus the command
|
|||
|
|
|||
|
EBname.typ;version`
|
|||
|
|
|||
|
is equivalent to the commands
|
|||
|
|
|||
|
ERname.typ;version`EWname.typ;0`
|
|||
|
|
|||
|
The EW command also creates a new version (one higher than the
|
|||
|
current highest) if no version number is given. If an explicit
|
|||
|
version number is given, then that number is used, and if another
|
|||
|
file of the same name, type, and version previously existed, it
|
|||
|
is superseded without warning. (See use of the EP and EK
|
|||
|
commands below.)
|
|||
|
|
|||
|
Standard TECO PAGE 162
|
|||
|
Appendix F
|
|||
|
|
|||
|
|
|||
|
In reading files, version numbers behave the same as in other
|
|||
|
RSX-11 utilities: the default is the highest version. This
|
|||
|
leads to a problem in re-opening the input file while a file is
|
|||
|
being edited with EB. Since the output file is already created
|
|||
|
and in the directory, the input file is no longer the highest
|
|||
|
version. One may deduce the version number of the input file by
|
|||
|
doing a :G* (typing the file string of the output file) and
|
|||
|
subtracting one from that version number.
|
|||
|
|
|||
|
In symmetry with the EB command, the EK command functions by
|
|||
|
simply deleting the current output file. Note, however, that a
|
|||
|
supersede (EW of same name, type, and version) is not undone -
|
|||
|
the file is already deleted!
|
|||
|
|
|||
|
The EP and EA commands, while simulating two channels each with
|
|||
|
an open file for each of input and output, in fact only keep one
|
|||
|
file open for each to conserve buffer space. This means that
|
|||
|
they are only useful for disk files. Also, it means that if you
|
|||
|
open a file and then supersede it, you should not switch the
|
|||
|
input channel away from it with an EP or ER` command, since it
|
|||
|
will not be possible to open the file again.
|
|||
|
|
|||
|
|
|||
|
F.4 WILD CARD LOOKUP
|
|||
|
|
|||
|
The EN command will process wild card lookups on RSX-11. To
|
|||
|
preset the wild card lookup file specification, use the standard
|
|||
|
RSX-11 format
|
|||
|
|
|||
|
dev:[p,pn]filename.typ;version
|
|||
|
|
|||
|
The device name must reference a file structured disk device or
|
|||
|
magtape. All other fields of the file specification may be fully
|
|||
|
wild (*), including either or both halves of the directory. The
|
|||
|
version number may be explicit, wild, or default. As with the
|
|||
|
other file specification commands, there is no default file type.
|
|||
|
|
|||
|
|
|||
|
F.5 EXITING FROM TECO
|
|||
|
|
|||
|
The normal method of exiting from TECO is with the EX command.
|
|||
|
This copies the remaining input file to the output file, closes
|
|||
|
all files and exits.
|
|||
|
|
|||
|
The <CTRL/C> (or Caret-C) command is the "give up and get out"
|
|||
|
command. Executed from main command level, it will cause TECO to
|
|||
|
exit regardless of the state of the buffer. If there is an open
|
|||
|
output file, it is deleted. The <CTRL/C> command is roughly
|
|||
|
equivalent to EKHKEX.
|
|||
|
|
|||
|
Standard TECO PAGE 163
|
|||
|
Appendix F
|
|||
|
|
|||
|
|
|||
|
F.6 <CTRL/C>
|
|||
|
|
|||
|
The action taken when the user types <CTRL/C> depends on what
|
|||
|
TECO is doing.
|
|||
|
|
|||
|
If TECO is executing commands, or is awaiting type-in for the ^T
|
|||
|
command, the ?XAB error occurs.
|
|||
|
|
|||
|
If TECO is at command level, typing <CTRL/C> cancels the command
|
|||
|
string currently being typed and returns TECO to its prompt. Two
|
|||
|
consecutive <CTRL/C> characters will cause an instant HKEKEX
|
|||
|
exit.
|
|||
|
|
|||
|
Sometimes it is desireable for a TECO macro to detect when a
|
|||
|
<CTRL/C> was typed. By detecting the <CTRL/C>, the macro can
|
|||
|
exit cleanly back to command level (pop saved Q-registers,
|
|||
|
restore any flag values, etc.). To do this, the macro sets Bit
|
|||
|
15 (Octal 100000, Decimal -32768) of the ET flag. When a
|
|||
|
<CTRL/C> is typed, TECO will automatically turn off Bit 15, but
|
|||
|
will continue execution of the macro. The macro periodically
|
|||
|
checks Bit 15 and exits cleanly if it ever goes off. For
|
|||
|
example:
|
|||
|
|
|||
|
[0 [1 -32768#ETET < ... ET; > 32767&ETET ]1 ]0
|
|||
|
|
|||
|
Setting the <CTRL/C> intercept bit in the ET flag must be done
|
|||
|
with some care; if the bit is set inside a command loop which
|
|||
|
does not check it, it will be impossible for the user to abort
|
|||
|
the loop. The only remedy for this situation is to abort TECO
|
|||
|
from another terminal.
|
|||
|
|
|||
|
|
|||
|
F.7 EXIT AND GO
|
|||
|
|
|||
|
If TECO is exited via the EGstring` command, TECO closes its
|
|||
|
files and exits. It then causes "string" to be executed as an
|
|||
|
MCR command using the spawn system directive. This feature works
|
|||
|
only on RSX-11M V3.2 and RSX-11M+ V1 or later.
|
|||
|
|
|||
|
|
|||
|
F.8 ET FLAG HANDLING
|
|||
|
|
|||
|
TECO will automatically turn off the following bits in the ET
|
|||
|
flag on every error: Bit 0 (image output), Bit 3 (no echo on
|
|||
|
^T), Bit 4 (cancel ^O), Bit 5 (no stall on ^T), and Bit 15 (^C
|
|||
|
trap).
|
|||
|
|
|||
|
In addition, TECO always turns off Bit 7 (exit on error, etc.)
|
|||
|
every time is reaches prompt (*) level.
|
|||
|
|
|||
|
Bit 6 (the detach flag) controls TECO'S treatment of the
|
|||
|
terminal. Normally, TECO keeps the terminal attached to gain
|
|||
|
control of <CTRL/C> interrupts. Setting bit 6 of the ET flag
|
|||
|
|
|||
|
Standard TECO PAGE 164
|
|||
|
Appendix F
|
|||
|
|
|||
|
|
|||
|
causes TECO to run with the terminal detached. All commands
|
|||
|
function normally, except that typing <CTRL/C> causes the MCR to
|
|||
|
be activated, allowing other tasks to be run from the same
|
|||
|
terminal concurrently with TECO. It is, of course, the user's
|
|||
|
problem to sort out the confusion that will arise if both TECO
|
|||
|
and another task request input from the terminal at the same
|
|||
|
time.
|
|||
|
|
|||
|
|
|||
|
F.9 FILE RECORD FORMAT
|
|||
|
|
|||
|
Files-11 files are record structured, while TECO'S text buffer is
|
|||
|
ASCII stream. Thus TECO must make format conversions when
|
|||
|
reading and writing files. The conversion depends on the record
|
|||
|
attributes of the file. While reading a file, the records are
|
|||
|
packed into the buffer. If the file is implied carriage control
|
|||
|
(the standard RSX-11 source format) or Fortran carriage control,
|
|||
|
TECO inserts a carriage return and line feed after each record to
|
|||
|
make each record appear as a line of text in the buffer, unless
|
|||
|
the record ends with ESCAPE, carriage return, line feed, vertical
|
|||
|
tab, or form feed. A record ending in form feed is interpreted
|
|||
|
as an end of page mark; it stops the read operation and the form
|
|||
|
feed is not entered in the buffer. If the file has print file
|
|||
|
carriage control, TECO interprets the carriage control bytes and
|
|||
|
inserts the resulting carriage return and line feed characters
|
|||
|
about the record. If the input file has no carriage control
|
|||
|
(also called internal carriage control), TECO simply packs the
|
|||
|
records together in the text buffer.
|
|||
|
|
|||
|
On output, TECO scans the text buffer for carriage return, line
|
|||
|
feed, vertical tab, and form feed characters. Each such
|
|||
|
character delimits the end of an output record. If the output
|
|||
|
file is implied or Fortran carriage control, and the record ends
|
|||
|
with exactly carriage return / line feed, the carriage return and
|
|||
|
line feed are not output with the record; Otherwise, the record
|
|||
|
is output in its entirety. The carriage return and line feed are
|
|||
|
also output with the record if the record ends with ESCAPE /
|
|||
|
carriage return / line feed.
|
|||
|
|
|||
|
Switches may be applied to the input and output files to control
|
|||
|
their carriage control attributes. The switch /CR forces implied
|
|||
|
carriage control; /-CR forces no (internal) carriage control;
|
|||
|
/FT forces Fortran carriage control. When a carriage control
|
|||
|
switch is applied to an input file, the file is read as if it had
|
|||
|
that attribute; when the switch is applied to an output file,
|
|||
|
the file is written with that attribute. Applying a switch to an
|
|||
|
EB file specification causes the switch to apply to both input
|
|||
|
and output files. When an output file is created, its carriage
|
|||
|
control attributes are defaulted to those of the currently open
|
|||
|
input file as follows:
|
|||
|
|
|||
|
Standard TECO PAGE 165
|
|||
|
Appendix F
|
|||
|
|
|||
|
|
|||
|
Input Output
|
|||
|
|
|||
|
implied implied
|
|||
|
none implied
|
|||
|
FORTRAN FORTRAN
|
|||
|
print file implied
|
|||
|
|
|||
|
Files read with the EI command have their record attributes
|
|||
|
interpreted in the same manner. This leads to an unexpected side
|
|||
|
effect with EI files containing an entire command. The last
|
|||
|
record of the file presumably contains as its last characters the
|
|||
|
two alt modes which initiate execution of the macro. If the file
|
|||
|
is implied carriage control, however, there are also the final
|
|||
|
carriage return / line feed belonging to the last record, which
|
|||
|
remain in the type in buffer while the macro executes. If the
|
|||
|
macro attempts to receive input with the <CTRL/T> command, the
|
|||
|
carriage return / line feed will be the first two characters
|
|||
|
read. Alternatively, if the macro does no type in, the carriage
|
|||
|
return / line feed will be read by TECO as the first two
|
|||
|
characters of the next command. Then no asterisk (*) will appear
|
|||
|
as the prompt for the next command. The remedy for both cases is
|
|||
|
for the macro to execute an EI` command early on. This causes
|
|||
|
the remainder of the indirect file to be discarded and further
|
|||
|
input to be read from the terminal.
|
|||
|
|
|||
|
|
|||
|
F.10 COMMAND LINE PROCESSING
|
|||
|
|
|||
|
The mechanism used to process the command line in RSX-11 TECO is
|
|||
|
designed to allow sophisticated TECO users the greatest
|
|||
|
flexibility in customizing TECO for their own use. It functions
|
|||
|
as follows:
|
|||
|
|
|||
|
The initialization routine places the original MCR command line
|
|||
|
(if any) into the filename buffer. It copies into the text
|
|||
|
buffer the text of a TECO macro that will be used to interpret
|
|||
|
the command line. Then it starts up TECO with the command
|
|||
|
|
|||
|
HXY HKG* HXZ HK :EITECO``
|
|||
|
|
|||
|
in the type in buffer. This loads the command line into
|
|||
|
Q-register Z and the macro into Q-register Y. It then executes
|
|||
|
the file named TECO.TEC located in the user's default directory,
|
|||
|
if it exists. After the user's TECO.TEC, and any files it might
|
|||
|
link to with EI, have been executed, TECO executes the command
|
|||
|
MY``, thus executing the macro to interpret the command line and
|
|||
|
open the files requested.
|
|||
|
|
|||
|
The TECO.TEC mechanism should not be used for simple
|
|||
|
initialization; the standard TECO.INI facility should suffice
|
|||
|
for that. The alternate TECO.TEC facility is provided for the
|
|||
|
sophisticated user who wants his own command processing and thus
|
|||
|
wishes to usurp control from the normal initialization.
|
|||
|
|
|||
|
Standard TECO PAGE 166
|
|||
|
Appendix F
|
|||
|
|
|||
|
|
|||
|
If an EI` command (to close the indirect command file) is
|
|||
|
executed during the processing of a user's TECO.TEC startup file,
|
|||
|
the final MY`` which causes processing of the command line is not
|
|||
|
executed. This results from the fact that the MY`` normally
|
|||
|
appears in TECO's type in after all command files have been
|
|||
|
processed. Executing the EI` command causes all "type ahead" to
|
|||
|
be discarded to allow a TECO command file to prompt and read
|
|||
|
input from the terminal (and not read extraneous type ahead). It
|
|||
|
is assumed that a TECO startup file that executes EI` and reads
|
|||
|
input from the terminal will want to manage the rest of TECO's
|
|||
|
startup. If it still wants to process the command line, it must
|
|||
|
issue the MY itself.
|
|||
|
|
|||
|
Standard TECO PAGE 167
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
APPENDIX G
|
|||
|
|
|||
|
|
|||
|
VAX/VMS OPERATING CHARACERISTICS
|
|||
|
|
|||
|
|
|||
|
|
|||
|
TECO is implemented in VAX/VMS as a half-native,
|
|||
|
half-compatibility mode program. The command processor and
|
|||
|
editor proper is the same as TECO-11 and runs in compatibility
|
|||
|
mode. Operating system interface and file service logic run in
|
|||
|
native mode.
|
|||
|
|
|||
|
|
|||
|
G.1 STARTUP
|
|||
|
|
|||
|
VAX/VMS supports all of the standard TECO invocation commands,
|
|||
|
namely
|
|||
|
|
|||
|
TECO
|
|||
|
TECO filespec
|
|||
|
TECO filespec=filespec
|
|||
|
MAKE filespec
|
|||
|
MUNG filespec
|
|||
|
MUNG filespec,text
|
|||
|
|
|||
|
If any of these commands are not recognized by the system, see
|
|||
|
the installation instructions (section G.13) in this appendix.
|
|||
|
|
|||
|
TECO macros may also be invoked with the command
|
|||
|
|
|||
|
TECO @filespec
|
|||
|
|
|||
|
It is exactly equivalent to
|
|||
|
|
|||
|
MUNG filespec
|
|||
|
|
|||
|
|
|||
|
G.2 INITIALIZATION
|
|||
|
|
|||
|
TECO performs initialization by attempting to translate the
|
|||
|
logical name TEC$INIT. If this name does not translate, no
|
|||
|
special initialization is done. If it translates to a string of
|
|||
|
the form $filespec (where "$" is a dollar sign), TECO executes
|
|||
|
the TECO commands in the specified filespec during
|
|||
|
initialization. If TEC$INIT translates to any other string, TECO
|
|||
|
executes that string as TECO commands during initialization. The
|
|||
|
original command line is available in the text buffer when the
|
|||
|
user initialization commands execute. Generally, you would set
|
|||
|
user private modes and/or flags at this time. This is also the
|
|||
|
normal place to detect, strip off, and do something appropriate
|
|||
|
with user private qualifiers.
|
|||
|
|
|||
|
Standard TECO PAGE 168
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
TECO's memory is controlled by the logical name TEC$MEMORY. If
|
|||
|
this name translates to a string of the form $filespec, TECO uses
|
|||
|
the specified file for its memory. Otherwise, TECO uses the
|
|||
|
logical name itself as the memory.
|
|||
|
|
|||
|
If TECO is requested to load VTEDIT at startup (e.g., via a
|
|||
|
TECO /VTEDIT command), it attempts to translate the logical name
|
|||
|
TEC$VTEDIT. If the name is defined, the resulting filespec is
|
|||
|
used as the file from which to load the scope editor. If
|
|||
|
TEC$VTEDIT is not defined, TECO attempts to translate the logical
|
|||
|
name TEC$LIBRARY. If that logical is defined, it is used as the
|
|||
|
(device and) directory name of where to find VTEDIT.TEC.
|
|||
|
Elsewise, TECO defaults to SYS$LIBRARY:VTEDIT.TEC.
|
|||
|
|
|||
|
These four logical names (TEC$INIT, TEC$MEMORY, TEC$VTEDIT, and
|
|||
|
TEC$LIBRARY) are the information holders corresponding to the
|
|||
|
four standard :EG commands INI, MEM, VTE, and LIB respectively
|
|||
|
(see section 5.1.3).
|
|||
|
|
|||
|
|
|||
|
G.3 FILE SPECIFICATION
|
|||
|
|
|||
|
All file specifiers are subject to the VAX/VMS file specifier
|
|||
|
rules; logical names and multi-level directories are properly
|
|||
|
handled, including transparent network file access. The filename
|
|||
|
field must be specified whenever the device name references a
|
|||
|
file structured device. The type field must be explicitly given
|
|||
|
if used. There is no default type except for EI commands which
|
|||
|
default the type field to .TEC.
|
|||
|
|
|||
|
Qualifiers may be applied to file specifications to control
|
|||
|
format and attributes; see G.11.
|
|||
|
|
|||
|
The qualifier /RW may be applied to any file specification in an
|
|||
|
ER, EW, and EI command. If the file specification references a
|
|||
|
magtape, the tape is rewound before the file is opened. Note
|
|||
|
that for output files, this has the effect of zeroing the tape.
|
|||
|
The /RW qualifier is ignored for all other device types.
|
|||
|
|
|||
|
The presence of version numbers in Files-11 causes file
|
|||
|
processing to behave slightly differently under VAX/VMS than
|
|||
|
under other operating systems. For example, no .BAK files are
|
|||
|
used; each execution of an EB command simply produces a new
|
|||
|
version of the file. Thus a user may retain any level of backup
|
|||
|
he feels to be comfortable. It also means that one must
|
|||
|
occasionally delete obsolete files to avoid cluttering the disk.
|
|||
|
Thus the command
|
|||
|
|
|||
|
EBname.typ;version`
|
|||
|
|
|||
|
is equivalent to the commands
|
|||
|
|
|||
|
ERname.typ;version`EWname.typ;0`
|
|||
|
|
|||
|
Standard TECO PAGE 169
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
The EW command also creates a new version (one higher than the
|
|||
|
current highest) if no version number is given. If an explicit
|
|||
|
version number is given, then that number is used, and if another
|
|||
|
file of the same name, type, and version previously existed, it
|
|||
|
is superseded without warning. (See use of the EK command
|
|||
|
below.)
|
|||
|
|
|||
|
In reading files, version numbers behave the same as in other
|
|||
|
VAX/VMS utilities: the default is the highest version. This
|
|||
|
leads to a problem in re-opening the input file while a file is
|
|||
|
being edited with EB. Since the output file is already created
|
|||
|
and in the directory, the input file is no longer the highest
|
|||
|
version. One may deduce the version number of the input file by
|
|||
|
doing a ER`:G*`` which types the file string of the current
|
|||
|
(primary) input file.
|
|||
|
|
|||
|
In symmetry with the EB command, the EK command functions by
|
|||
|
simply deleting the current output file. Note, however, that a
|
|||
|
supersede (EW of same name, type, and version) is not undone -
|
|||
|
the file is already deleted!
|
|||
|
|
|||
|
When files are processed concurrently on the primary and
|
|||
|
secondary channels, all files are kept open. Thus the problems
|
|||
|
that occur under RSX-11 do not exist under VAX/VMS.
|
|||
|
|
|||
|
|
|||
|
G.4 WILD CARD LOOKUP
|
|||
|
|
|||
|
Wild card file name processing supports all of the wild carding
|
|||
|
facilities of RMS. For VAX/VMS V2 and later systems this
|
|||
|
includes embedded * and % and multi-level directory wildcarding.
|
|||
|
|
|||
|
|
|||
|
G.5 SYMBOL CONSTITUENTS
|
|||
|
|
|||
|
The match control character ^EC and the conditional n"C accept
|
|||
|
the VAX/VMS symbol constituent character set, which consists of
|
|||
|
upper and lower case alphabetics, numerics, ., $, and _.
|
|||
|
|
|||
|
|
|||
|
G.6 EXITING FROM TECO
|
|||
|
|
|||
|
The normal method of exiting from TECO is with the EX command.
|
|||
|
This copies the remaining input file to the output file, closes
|
|||
|
all files and exits.
|
|||
|
|
|||
|
The <CTRL/C> (or Caret-C) command is the "give up and get out"
|
|||
|
command. Executed from main command level, it will cause TECO to
|
|||
|
exit regardless of the state of the buffer. If there is an open
|
|||
|
output file, it is deleted. The <CTRL/C> command is roughly
|
|||
|
equivalent to EKHKEX.
|
|||
|
|
|||
|
TECO's normal exit status code (as reflected by the DCL symbols
|
|||
|
|
|||
|
Standard TECO PAGE 170
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
$STATUS and `SEVERITY) is 1 (success). An exit caused by an EG`
|
|||
|
command sets the exit status code to 9 (also success). An error
|
|||
|
exit caused by an error or <CTRL/C> with the 128 bit set in ET
|
|||
|
sets the exit status code to hexidecimal 1000002C which is
|
|||
|
SS$_ABORT with the inhibit message bit set. All other exits are
|
|||
|
from fatal internal errors and the exit status code is the fatal
|
|||
|
error status code.
|
|||
|
|
|||
|
|
|||
|
G.7 <CTRL/C>
|
|||
|
|
|||
|
The action taken when the user types <CTRL/C> depends on what
|
|||
|
TECO is doing.
|
|||
|
|
|||
|
If TECO is executing commands, or is awaiting type-in for the ^T
|
|||
|
command, the ?XAB error occurs.
|
|||
|
|
|||
|
If TECO is at command level, typing <CTRL/C> cancels the command
|
|||
|
string currently being typed and returns TECO to its prompt. Two
|
|||
|
consecutive <CTRL/C> characters will cause an instant HKEKEX
|
|||
|
exit.
|
|||
|
|
|||
|
Sometimes it is desireable for a TECO macro to detect when a
|
|||
|
<CTRL/C> was typed. By detecting the <CTRL/C>, the macro can
|
|||
|
exit cleanly back to command level (pop saved Q-registers,
|
|||
|
restore any flag values, etc.). To do this, the macro sets Bit
|
|||
|
15 (Octal 100000, Decimal -32768) of the ET flag. When a
|
|||
|
<CTRL/C> is typed, TECO will automatically turn off Bit 15, but
|
|||
|
will continue execution of the macro. The macro periodically
|
|||
|
checks Bit 15 and exits cleanly if it ever goes off. For
|
|||
|
example:
|
|||
|
|
|||
|
[0 [1 -32768#ETET < ... ET; > 32767&ETET ]1 ]0
|
|||
|
|
|||
|
Setting the <CTRL/C> intercept bit in the ET flag must be done
|
|||
|
with some care; if the bit is set inside a command loop which
|
|||
|
does not check it, it will be impossible for the user to abort
|
|||
|
the loop. The only remedy for this situation is to abort TECO
|
|||
|
with <CTRL/Y>, resulting in the loss of the edit.
|
|||
|
|
|||
|
|
|||
|
G.8 <CTRL/Y>
|
|||
|
|
|||
|
<CTRL/Y> is not handled at all by TECO and will result in
|
|||
|
trapping to the command interpreter. Should you accidentally
|
|||
|
type <CTRL/Y>, immediately type CONTINUE in response to the DCL
|
|||
|
prompt to resume editing.
|
|||
|
|
|||
|
|
|||
|
G.9 EXIT AND GO
|
|||
|
|
|||
|
If TECO is exited with the EGstring` command, the string is
|
|||
|
passed to the command interpreter as the next command to execute
|
|||
|
|
|||
|
Standard TECO PAGE 171
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
after TECO has closed its files and exited. This feature works
|
|||
|
only on VAX/VMS V2 and later systems.
|
|||
|
|
|||
|
|
|||
|
G.10 ET FLAG HANDLING
|
|||
|
|
|||
|
TECO will automatically turn off the following bits in the ET
|
|||
|
flag on every error: Bit 0 (image output), Bit 3 (no echo on
|
|||
|
^T), Bit 4 (cancel ^O), Bit 5 (no stall on ^T), and Bit 15 (^C
|
|||
|
trap).
|
|||
|
|
|||
|
In addition, TECO always turns off Bit 7 (exit on error, etc.)
|
|||
|
every time is reaches prompt (*) level.
|
|||
|
|
|||
|
Bit 6 (the detach flag) has no meaning in VAX/VMS.
|
|||
|
|
|||
|
|
|||
|
G.11 FILE RECORD FORMAT
|
|||
|
|
|||
|
Files-11 files are record structured, while TECO'S text buffer is
|
|||
|
ASCII stream. Thus TECO must make format conversions when
|
|||
|
reading and writing files. The conversion depends on the record
|
|||
|
attributes of the file. While reading a file, the records are
|
|||
|
packed into the buffer. If the file is implied carriage control
|
|||
|
(the standard VAX/VMS source format) or FORTRAN carriage control,
|
|||
|
TECO inserts a carriage return and line feed after each record to
|
|||
|
make each record appear as a line of text in the buffer, unless
|
|||
|
the record ends with ESCAPE, carriage return, line feed, vertical
|
|||
|
tab, or form feed. A record containing a form feed is
|
|||
|
interpreted as an end of page mark; it stops the read operation
|
|||
|
and the form feed is not entered in the buffer. The portion of
|
|||
|
the record after the form feed, if any, is saved for the next
|
|||
|
input command. If the file has print file carriage control, TECO
|
|||
|
interprets the carriage control bytes and inserts the resulting
|
|||
|
carriage return and line feed characters about the record. If
|
|||
|
the input file has no carriage control (also called internal
|
|||
|
carriage control), TECO simply packs the records together in the
|
|||
|
text buffer.
|
|||
|
|
|||
|
On output, TECO scans the text buffer for carriage return, line
|
|||
|
feed, vertical tab, and form feed characters. Each such
|
|||
|
character delimits the end of an output record. If the output
|
|||
|
file is implied or FORTRAN carriage control, and the record ends
|
|||
|
with exactly carriage return / line feed, the carriage return and
|
|||
|
line feed are not output with the record; Otherwise, the record
|
|||
|
is output in its entirety. The carriage return and line feed are
|
|||
|
also output with the record if the record ends with ESCAPE /
|
|||
|
carriage return / line feed.
|
|||
|
|
|||
|
Qualifiers may be applied to the input and output file
|
|||
|
specifications. When a carriage control qualifier is applied to
|
|||
|
an input file, the file is read as if it had that attribute;
|
|||
|
when the qualifier is applied to an output file, the file is
|
|||
|
|
|||
|
Standard TECO PAGE 172
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
written with that attribute. Applying a qualifier to an EB file
|
|||
|
specification causes the qualifier to apply to both input and
|
|||
|
output files.
|
|||
|
|
|||
|
The following qualifiers may be used to control input processing:
|
|||
|
|
|||
|
/-CR Force "none" file record attributes
|
|||
|
/CR Force "Implied" file record attributes
|
|||
|
/FT Force "FORTRAN" file record attributes
|
|||
|
/FTN Same as /FT
|
|||
|
/B2 BASIC-PLUS-x handling (see Appendix J)
|
|||
|
|
|||
|
The following qualifiers may be used to control output
|
|||
|
processing:
|
|||
|
|
|||
|
/VAR Create file record format "Var"
|
|||
|
/STM Create file record format "Stm"
|
|||
|
/-CR Create file record format "None"
|
|||
|
/CR Create file record format "Implied"
|
|||
|
/FT Create file record format "FORTRAN"
|
|||
|
/FTN Same as /FT
|
|||
|
/B2 BASIC-PLUS-x handling (see Appendix J)
|
|||
|
|
|||
|
The following qualifiers may be used to control
|
|||
|
open/create/access options:
|
|||
|
|
|||
|
/RW Rewind before open/create
|
|||
|
/SH Enable file sharing
|
|||
|
/SHR Same as /SH
|
|||
|
|
|||
|
Below is a complete list of valid TECO input file record
|
|||
|
format/attribute combinations and the resulting file
|
|||
|
format/attribute combinations for EB commands:
|
|||
|
|
|||
|
Input Output
|
|||
|
Format Attribute Format Attribute
|
|||
|
|
|||
|
Fix none Var Implied
|
|||
|
Fix Implied Var Implied
|
|||
|
Fix FORTRAN Var FORTRAN
|
|||
|
Var none Var Implied
|
|||
|
Var Implied Var Implied
|
|||
|
Var FORTRAN Var FORTRAN
|
|||
|
VFC Print Var Implied
|
|||
|
Stm none Stm Implied
|
|||
|
Stm Implied Stm Implied
|
|||
|
|
|||
|
Files read with the EI command have their record attributes
|
|||
|
interpreted in the same manner. This leads to an unexpected side
|
|||
|
effect with EI files containing an entire command. The last
|
|||
|
record of the file presumably contains as its last characters the
|
|||
|
two alt modes which initiate execution of the macro. If the file
|
|||
|
is implied carriage control, however, there are also the final
|
|||
|
|
|||
|
Standard TECO PAGE 173
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
carriage return / line feed belonging to the last record, which
|
|||
|
remain in the type in buffer while the macro executes. If the
|
|||
|
macro attempts to receive input with the <CTRL/T> command, the
|
|||
|
carriage return / line feed will be the first two characters
|
|||
|
read. Alternatively, if the macro does no type in, the carriage
|
|||
|
return / line feed will be read by TECO as the first two
|
|||
|
characters of the next command. Then no asterisk (*) will appear
|
|||
|
as the prompt for the next command. The remedy for both cases is
|
|||
|
for the macro to execute an EI` command early on. This causes
|
|||
|
the remainder of the indirect file to be discarded and further
|
|||
|
input to be read from the terminal as soon as the double alt mode
|
|||
|
is encountered.
|
|||
|
|
|||
|
|
|||
|
G.12 COMMAND LINE PROCESSING
|
|||
|
|
|||
|
The mechanism used to process the command line in VAX/VMS TECO is
|
|||
|
designed to allow sophisticated TECO users the greatest
|
|||
|
flexibility in customizing TECO for their own use. It functions
|
|||
|
as follows:
|
|||
|
|
|||
|
The initialization routine places a built-in command decoding
|
|||
|
TECO macro into Q-register Y and the original command line
|
|||
|
(including the keyword TECO, MAKE, or MUNG) into Q-register Z.
|
|||
|
|
|||
|
It then looks for a user private command decoding TECO macro by
|
|||
|
attempting
|
|||
|
|
|||
|
1. an EITECO`` if the logical name "TECO" exists, elsewise
|
|||
|
|
|||
|
2. an EISYS$LOGIN:TECO`` if the logical name "SYS$LOGIN"
|
|||
|
exists, elsewise
|
|||
|
|
|||
|
3. an EITECO``
|
|||
|
|
|||
|
If the EI succeeds, the found file is executed. The file may, or
|
|||
|
course, do anything it pleases. Generally, you would use a
|
|||
|
private command decoder to automate some sort of system specific
|
|||
|
editing package. For example, to implement an editing package
|
|||
|
called FOOBAR, you would define the logical TECO with
|
|||
|
$ DEFINE/SYSTEM TECO dev:[dir]FOOBAR
|
|||
|
define a DCL foreign command symbol with
|
|||
|
$ FOOBAR :== $SYS$SYSTEM:TECO FOOBAR
|
|||
|
and place the TECO macro the implements the FOOBAR editor in
|
|||
|
dev:[dir]FOOBAR.TEC. Now, whenever a TECO, MAKE, MUNG, or FOOBAR
|
|||
|
command is issued, the your macro will gain control. It should
|
|||
|
fetch Q-register Z (the original command line), check the command
|
|||
|
type, if it's FOOBAR then go do its thing, else it should
|
|||
|
terminate and execute TECO's built-in command decoder.
|
|||
|
|
|||
|
GZ ! Put command into text buffer !
|
|||
|
J ::@S/FOOBAR/"U ! Is the command for us? !
|
|||
|
@EI// ! Not for us, turn us off !
|
|||
|
|
|||
|
Standard TECO PAGE 174
|
|||
|
Appendix G
|
|||
|
|
|||
|
|
|||
|
HK ! Clear out text buffer !
|
|||
|
MY ! Let the real TECO takeover !
|
|||
|
' ! It's for us, just flow on... !
|
|||
|
$$ ! Double ESCAPE; 1st command's end !
|
|||
|
... ! Do your own thing here... !
|
|||
|
|
|||
|
This mechanism should not be used for simple initialization; the
|
|||
|
standard TEC$INIT facility should suffice for that. This
|
|||
|
facility is provided for the sophisticated user who wants his own
|
|||
|
command processing and thus wishes to usurp control.
|
|||
|
|
|||
|
|
|||
|
G.13 HELP
|
|||
|
|
|||
|
On VAX/VMS, TECO can provide HELP in any of three ways.
|
|||
|
|
|||
|
You can issue a HELP command at TECO's asterisk prompt. This
|
|||
|
HELP command obeys the standard VAX/VMS HELP command syntax
|
|||
|
rules. The HELP command may be terminated by either RETURN or
|
|||
|
``.
|
|||
|
|
|||
|
You can type the / command immediately after an error. (See
|
|||
|
section 4.2.) TECO will respond with a one-paragraph description
|
|||
|
of the error.
|
|||
|
|
|||
|
You can set EH to 3. (See section 5.16.) This will cause TECO to
|
|||
|
automatically respond with a one-paragraph description of any
|
|||
|
error which occurs.
|
|||
|
|
|||
|
|
|||
|
G.14 INSTALLING TECO
|
|||
|
|
|||
|
TECO is distributed with VAX/VMS; the files are already in
|
|||
|
place. If TECO will receive heavy use, it should be installed
|
|||
|
/OPEN and /HEADER_RESIDENT.
|
|||
|
|
|||
|
The following commands, if used in a LOGIN.COM file, would define
|
|||
|
the three normal TECO invocation commands:
|
|||
|
|
|||
|
$ TE*CO :== $SYS$SYSTEM:TECO TECO
|
|||
|
$ MAK*E :== $SYS$SYSTEM:TECO MAKE
|
|||
|
$ MU*NG :== $SYS$SYSTEM:TECO MUNG
|
|||
|
|
|||
|
The asterisk allows for abbreviation of these commands. For
|
|||
|
example, the TE*CO definition permits TE, TEC, or TECO.
|
|||
|
|
|||
|
One may include command qualifiers in the command definitions.
|
|||
|
For example, one can define a command to invoke TECO with VTEDIT
|
|||
|
as follows:
|
|||
|
|
|||
|
$ VTECO :== $SYS$SYSTEM:TECO TECO /VTEDIT
|
|||
|
|
|||
|
Standard TECO PAGE 175
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
APPENDIX H
|
|||
|
|
|||
|
|
|||
|
OS/8 OPERATING CHARACTERISTICS
|
|||
|
|
|||
|
|
|||
|
H.1 STARTUP
|
|||
|
|
|||
|
TECO is started with the
|
|||
|
|
|||
|
.R TECO
|
|||
|
|
|||
|
command. TECO is now immediately ready to accept commands. The
|
|||
|
text buffer and Q-register areas are empty.
|
|||
|
|
|||
|
The TECO command
|
|||
|
|
|||
|
.TECO filespec
|
|||
|
|
|||
|
is used to edit an already existing file. It is equivalent to
|
|||
|
|
|||
|
.R TECO
|
|||
|
*EBfilespec`Y``
|
|||
|
|
|||
|
OS/8 "remembers" the filespec as the name of the last file that
|
|||
|
has been edited.
|
|||
|
|
|||
|
The MAKE command
|
|||
|
|
|||
|
.MAKE filespec
|
|||
|
|
|||
|
is used to create a new file. It is equivalent to
|
|||
|
|
|||
|
.R TECO
|
|||
|
*EWfilespec``
|
|||
|
|
|||
|
OS/8 "remembers" the filespec as the name of the last file that
|
|||
|
was edited.
|
|||
|
|
|||
|
The command
|
|||
|
|
|||
|
.TECO filespec1=filespec2
|
|||
|
|
|||
|
is used to edit filespec2 into filespec1. That is, filespec2 is
|
|||
|
opened as the input file, and filespec1 is created as the output
|
|||
|
file. It is equivalent to
|
|||
|
|
|||
|
.R TECO
|
|||
|
*ERfilespec2`EWfilespec1`Y``
|
|||
|
|
|||
|
OS/8 "remembers" the filespec1 as the name of the last file that
|
|||
|
was edited.
|
|||
|
|
|||
|
Standard TECO PAGE 176
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
The command
|
|||
|
|
|||
|
.TECO
|
|||
|
|
|||
|
with no arguments, causes CCL to execute the command
|
|||
|
|
|||
|
.TECO filespec
|
|||
|
|
|||
|
where filespec was the file that was previously remembered as the
|
|||
|
last file to be edited. The system purposely does not remember
|
|||
|
filenames from one day to the next, but it will remember names
|
|||
|
across bootstraps.
|
|||
|
|
|||
|
The command
|
|||
|
|
|||
|
.MUNG filespec
|
|||
|
|
|||
|
executes the specified TECO program. The default extension is
|
|||
|
.TEC . This is equivalent to the sequence:
|
|||
|
|
|||
|
.R TECO
|
|||
|
*ERfilespec`YHXYHKMY``
|
|||
|
|
|||
|
Another format of this command is
|
|||
|
|
|||
|
.MUNG filespec,argument
|
|||
|
|
|||
|
which is used to pass an argument to the TECO program to control
|
|||
|
its action. This is equivalent to the sequence:
|
|||
|
|
|||
|
.R TECO
|
|||
|
*ERfilespec`YHXYHKIargument`MY``
|
|||
|
|
|||
|
|
|||
|
The argument may be the name of a file that the TECO program is
|
|||
|
to mung, or it may be a command to the program to specify what
|
|||
|
action to take, or whatever. It is up to the TECO program to
|
|||
|
decode this argument (which is left in the text buffer) and take
|
|||
|
appropriate action. A TECO program executed via the MUNG command
|
|||
|
must never destroy the text storage area of Q-register Y and
|
|||
|
expect to ever see the light of day again.
|
|||
|
|
|||
|
Note the input file remains open and can provide more input to
|
|||
|
the macro.
|
|||
|
|
|||
|
|
|||
|
H.2 STARTUP CONDITIONS
|
|||
|
|
|||
|
The initial value of the EU flag is 0 if the CCL command SET TTY
|
|||
|
NO SCOPE had been previously issued, and is -1 if the CCL command
|
|||
|
SET TTY SCOPE had previously been issued.
|
|||
|
|
|||
|
The initial value of the ET flag is as follows:
|
|||
|
|
|||
|
Standard TECO PAGE 177
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
Bit value Initial value
|
|||
|
|
|||
|
1 0
|
|||
|
2 0 (1 if terminal is a scope)
|
|||
|
4 0
|
|||
|
8 0
|
|||
|
16 0
|
|||
|
32 0
|
|||
|
64 0
|
|||
|
128 1 (TECO's prompt sets this to 0)
|
|||
|
256 0
|
|||
|
512 0 (1 if VT support is present)
|
|||
|
1024 0 (1 if VR12 support is present)
|
|||
|
2048 0
|
|||
|
|
|||
|
The initial value of the ED flag is 1.
|
|||
|
|
|||
|
|
|||
|
H.3 FILE SPECIFICATION
|
|||
|
|
|||
|
The file access commands ER, EB, and EW accept a file
|
|||
|
specification in the standard OS/8 format:
|
|||
|
|
|||
|
dev:filename.type
|
|||
|
|
|||
|
in which dev: is a physical device name or a user assigned
|
|||
|
logical name; if dev: is not specified, the default DSK: is
|
|||
|
assumed. The filename field must be specified in the commands
|
|||
|
ER, EB, and EW and be a legal OS/8 filename. The type field is a
|
|||
|
file extension and must be explicitly given if used (there is no
|
|||
|
default). Any characters after the second will be ignored, thus
|
|||
|
the filespecs FOO.TEC and FOO.TE are equivalent. The EB and EW
|
|||
|
commands do not accept the extended notation for an output file
|
|||
|
size
|
|||
|
|
|||
|
dev:filename.type[n]
|
|||
|
|
|||
|
specifying an output size allocation.
|
|||
|
|
|||
|
|
|||
|
H.5 BACKUP FILES
|
|||
|
|
|||
|
The EB command maintains one level of file backup on OS/8. The
|
|||
|
pre-edited input file name is changed to
|
|||
|
|
|||
|
filename.BK
|
|||
|
|
|||
|
before the new output file is closed with the original name.
|
|||
|
Only normal file closing commands (EC, EF, EG, and EX) cause this
|
|||
|
renaming to happen. If TECO is aborted or the output file is
|
|||
|
purged by the EK command, the input filename remains unchanged.
|
|||
|
Note only one .BK file for a given name is kept; earlier .BK
|
|||
|
backup files are deleted each time a new backup file is created.
|
|||
|
|
|||
|
Standard TECO PAGE 178
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
A good policy to follow when editing is to close the edited file
|
|||
|
frequently enough so that an unexpected incident would not cause
|
|||
|
a substantial loss of work. Files should be backed up regularly.
|
|||
|
TECO has the power to let an unsuspecting user alter a good file
|
|||
|
into a completely useless state. The SRCCOM program can be used
|
|||
|
to verify an editing session.
|
|||
|
|
|||
|
|
|||
|
H.6 EXIT AND GO
|
|||
|
|
|||
|
If TECO is exited via the EGstring` command, the string is passed
|
|||
|
to the system as the next command to execute. This string may be
|
|||
|
any valid command or an indirect command file specification. The
|
|||
|
command may be either a KBM or a CCL command. This command is
|
|||
|
especially useful while running under BATCH.
|
|||
|
|
|||
|
If TECO is exited via the EG` command, then OS/8 will re-execute
|
|||
|
the last explicit compile-class command that was executed that
|
|||
|
day. The commands that are considered to be compile-class
|
|||
|
commands are:
|
|||
|
|
|||
|
COMPILE file
|
|||
|
LOAD file
|
|||
|
EXECUTE file
|
|||
|
LINK file
|
|||
|
MACRO file.
|
|||
|
|
|||
|
This feature, combined with OS/8's other remembering features,
|
|||
|
minimizes the number of keystrokes necessary to do normal program
|
|||
|
development. The programmer does not have to constantly type in
|
|||
|
the name of the file he is working with. A typical debugging
|
|||
|
session would look like this:
|
|||
|
|
|||
|
.MAKE FOO.MAC
|
|||
|
*!type in assembly language file to be executed!
|
|||
|
*EX``
|
|||
|
.EXECUTE FOO
|
|||
|
(get error messages)
|
|||
|
.TECO
|
|||
|
*!fix bugs!
|
|||
|
*EG`` !re-compile and execute program!
|
|||
|
(watch program work or repeat process)
|
|||
|
|
|||
|
|
|||
|
H.7 <CTRL/C>
|
|||
|
|
|||
|
The action taken when the user types <CTRL/C> depends on what
|
|||
|
TECO is doing. At command level <CTRL/C> is an immediate action
|
|||
|
command. If typed as the very first character in a command
|
|||
|
string (not necessarily the first keystroke) it aborts TECO and
|
|||
|
returns to the keyboard monitor. If this was done accidentally,
|
|||
|
TECO may be restarted (at your own risk) by using ODT to branch
|
|||
|
to location 207 in your program's image. If <CTRL/C> is typed in
|
|||
|
|
|||
|
Standard TECO PAGE 179
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
the middle of entering a command string, then the ?XAB error
|
|||
|
message is given and TECO reprompts with its asterisk. Note that
|
|||
|
if TECO executes <CTRL/C> as a command from command level, TECO
|
|||
|
is aborted. If TECO executes a <CTRL/C> command from within a
|
|||
|
macro, TECO is also aborted. If a <CTRL/C> is typed while TECO
|
|||
|
is running, or while TECO is typing on the terminal, or while an
|
|||
|
error message is printing, then the ?XAB error message is given
|
|||
|
and TECO reprompts with its asterisk. TECO will abort similarly,
|
|||
|
if <CTRL/C> is typed while TECO is waiting for input because of a
|
|||
|
^T command. Note that if TECO is performing I/O using non-system
|
|||
|
handlers, the non-system handler may intercept the <CTRL/C> and
|
|||
|
abort back to the keyboard monitor. In such a case, you may
|
|||
|
attempt to re-enter TECO. However, part of your file has been
|
|||
|
lost; good luck in attempting to issue an EF command. Manually
|
|||
|
resetting the value of Z might recover your data.
|
|||
|
|
|||
|
If TECO is executing commands or doing I/O, a <CTRL/C> will stop
|
|||
|
the operation and generate the ?XAB error message.
|
|||
|
|
|||
|
Sometimes it is desireable for a TECO macro to detect when a
|
|||
|
<CTRL/C> was typed. By detecting the <CTRL/C>, the macro can
|
|||
|
exit cleanly back to command level (restore any flag values,
|
|||
|
etc.). To do this, the macro sets Bit 0 (Octal 4000, Decimal
|
|||
|
2048) of the ET flag. When a <CTRL/C> is typed, TECO will
|
|||
|
automatically turn off Bit 0, but will continue execution of the
|
|||
|
macro. The macro periodically checks Bit 0 and exits cleanly if
|
|||
|
it ever goes off. If the <CTRL/C> trap bit is on, then the ^T
|
|||
|
can read a <CTRL/C> typed at the terminal. It has an ASCII value
|
|||
|
of 3.
|
|||
|
|
|||
|
|
|||
|
H.8 FILE RECOVERY
|
|||
|
|
|||
|
TECO can be a useful tool in recovering ASCII files lost on a
|
|||
|
block replaceable device. TECO allows non-file-structured
|
|||
|
devices to be opened in a non-file structured mode. This gives
|
|||
|
the user the capability to open a disk and access ASCII data
|
|||
|
anywhere on it, independent of file boundaries. To do this, you
|
|||
|
must issue a command of the form
|
|||
|
|
|||
|
.SET dev: NOFILES
|
|||
|
|
|||
|
to the monitor to make it think that your disk is
|
|||
|
non-file-structured. The command
|
|||
|
|
|||
|
ERdev:`
|
|||
|
|
|||
|
is used to open the device at which point _ (underscore or
|
|||
|
backarrow) searches may be used to locate specific ASCII data and
|
|||
|
transfer it to new output files. Note that files tend to get
|
|||
|
reproduced, in whole or part, many places on a block replaceable
|
|||
|
device; be sure to verify that any given text is indeed complete
|
|||
|
and the correct version.
|
|||
|
|
|||
|
Standard TECO PAGE 180
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
If the disk's directory has not been clobbered (or if you are
|
|||
|
willing to create a new one), then it is not necessary to turn
|
|||
|
the disk into a non-file-structured device. Merely open up a
|
|||
|
file early on the disk for input and read through end-of-files
|
|||
|
until you locate the lost file. To read through end-of-files,
|
|||
|
you must use the /S switch on an ER, EB, or EW command. For
|
|||
|
example, the command
|
|||
|
|
|||
|
ERFOO.MAC/S`
|
|||
|
|
|||
|
will open the file FOO.MA for input and put TECO into "SUPERTECO"
|
|||
|
mode. In this mode, TECO will not treat a <CTRL/Z> found in a
|
|||
|
file as an end-of-file character. Instead, <CTRL/Z> will be
|
|||
|
treated like any other character. It is not a line terminator or
|
|||
|
a page terminator. This mode continues until an ER, EW, or EB
|
|||
|
command is issued without a /S switch.
|
|||
|
|
|||
|
|
|||
|
H.9 VR12 GRAPHICS SUPPORT
|
|||
|
|
|||
|
If TECO is run on a PDP-12, TECO will automatically start up in
|
|||
|
display mode, adjusting to both the size of the display screen
|
|||
|
and to the presence or absence of the scroller.
|
|||
|
|
|||
|
On a PDP-12, TECO only permits one-page input and output
|
|||
|
handlers.
|
|||
|
|
|||
|
See Section 5.17 for a description of the available commands to
|
|||
|
interact with the display.
|
|||
|
|
|||
|
Various aspects of the display screen become immediately obvious
|
|||
|
upon seeing them; the text pointer, its position and shape and
|
|||
|
its position between lines; wrap around of more than 72
|
|||
|
characters per line, and so on. Experiment with a scratch file
|
|||
|
for more familiarity.
|
|||
|
|
|||
|
|
|||
|
H.10 EXCEPTIONS
|
|||
|
|
|||
|
TECO-8 does not support the following commands which are
|
|||
|
described in this manual:
|
|||
|
|
|||
|
1. Secondary streams (EP, EA, ER`, EW`)
|
|||
|
|
|||
|
2. Auxiliary command streams (EI)
|
|||
|
|
|||
|
3. Wildcards (EN)
|
|||
|
|
|||
|
4. Zeroing of directories (EZ)
|
|||
|
|
|||
|
5. Magtape commands (EM)
|
|||
|
|
|||
|
6. View command (nV)
|
|||
|
|
|||
|
Standard TECO PAGE 181
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
7. Bounded searches
|
|||
|
|
|||
|
8. Anchored searches
|
|||
|
|
|||
|
9. Search verification (ES)
|
|||
|
|
|||
|
10. Command verification (EV)
|
|||
|
|
|||
|
11. Backward searches
|
|||
|
|
|||
|
12. Extended string build or match constructs (^Ex)
|
|||
|
|
|||
|
The following incompatibilities exist between TECO-8 and Standard
|
|||
|
TECO:
|
|||
|
|
|||
|
1. In octal mode, the digits 8 and 9 are not treated as
|
|||
|
errors when occurring in a numeric string.
|
|||
|
|
|||
|
2. The *q immediate action command is not implemented.
|
|||
|
Instead, the immediate action command * has the same
|
|||
|
effect as *Z of the standard. (The immediate mode
|
|||
|
command ^S is still accepted for compatibility with OS/8
|
|||
|
TECO V5.)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
H.11 CHAINING TO TECO
|
|||
|
|
|||
|
A user program may chain to TECO passing it a command to be
|
|||
|
executed. There are two formats that such a command may take.
|
|||
|
|
|||
|
Format 1 (the TECO command format) passes TECO a valid TECO
|
|||
|
command to be executed. This TECO command is placed in a buffer
|
|||
|
starting at location 17600, one 7-bit ASCII character per word.
|
|||
|
A negative word represents a pointer to a continuation buffer in
|
|||
|
field 1. There may be any number of continuation buffers, but
|
|||
|
they must all begin above location 4000 in field 1. Since TECO
|
|||
|
clobbers most of field 1, these buffers must in fact start above
|
|||
|
location 7400. TECO will never load into page 7400 of field 1.
|
|||
|
The buffer ends with a fullword 0.
|
|||
|
|
|||
|
Format 2 (the CCL command format) passes TECO a CCL command to be
|
|||
|
parsed and executed. Such a command usually begins with the
|
|||
|
words TECO, MAKE, or MUNG, but is not limited to these words.
|
|||
|
Such a CCL command is placed in a buffer starting at location
|
|||
|
17601, one 7-bit ASCII character per word. Location 17600 must
|
|||
|
be a fullword 0 to specify that this format is being used. A
|
|||
|
negative word in the buffer represents a pointer to a
|
|||
|
continuation buffer in field 1 as described above. The buffer
|
|||
|
ends with a fullword 0. If this format is used, the passed CCL
|
|||
|
command will be parsed and executed by TECO.TEC as described
|
|||
|
below. A user may write his own TECO.TEC, thus implementing his
|
|||
|
own CCL commands. There is no limit to the possiblities, other
|
|||
|
|
|||
|
Standard TECO PAGE 182
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
than the user's imagination.
|
|||
|
|
|||
|
|
|||
|
H.12 USER INITIALIZATION
|
|||
|
|
|||
|
If a user has a file called TECO.INI on SYS:, then when TECO
|
|||
|
starts up (via a CCL command, it will execute the contents of
|
|||
|
this file (as a TECO macro). This file must contain a valid TECO
|
|||
|
program (which will execute out of Q-register W). God help you
|
|||
|
if you have any errors in this program. This start-up file must
|
|||
|
not modify itself (Q-register W) and must not modify the contents
|
|||
|
of Q-register V. It should not indiscriminately modify the
|
|||
|
contents of Q-register Z or the text buffer. TECO.INI will be
|
|||
|
executed before TECO opens any files. That is, if TECO was
|
|||
|
invoked via a MAKE command, TECO.INI will be executed before the
|
|||
|
EW command (for the MAKE) is executed. At this point, the text
|
|||
|
buffer will contain a copy of the CCL command that invoked TECO
|
|||
|
(assuming your monitor has TECO.TEC support). However, TECO has
|
|||
|
not as yet parsed this line. The user may examine this line for
|
|||
|
himself, and modify it, but you had better know what you are
|
|||
|
doing (and do it right!). TECO.TEC will parse the contents of
|
|||
|
the text buffer at the conclusion of execution of TECO.INI.
|
|||
|
|
|||
|
If your monitor does not have TECO.TEC support, or if a user
|
|||
|
program chained to TECO passing it a TECO command (rather than a
|
|||
|
CCL command), then the initial TECO command will be in Q-register
|
|||
|
Z when TECO.INI gets control. That command has not as yet been
|
|||
|
executed. The initialization file may examine the contents of
|
|||
|
Q-register Z to determine what TECO command will be executed and
|
|||
|
proceed accordingly. It may also modify the contents of
|
|||
|
Q-register Z (but you better know what you are doing).
|
|||
|
|
|||
|
In this case, TECO.INI is started up via the sequence
|
|||
|
|
|||
|
@:ER/SYS:TECO.INI/"SYHXWHK
|
|||
|
@^UZ^@teco command^@
|
|||
|
MW+0ES.,.XWMZES"N0ESMX'``
|
|||
|
|
|||
|
which loads TECO.INI into Q-register W, loads the chain argument
|
|||
|
consisting of an appropriate teco command into Q-register Z, and
|
|||
|
temporarily stores the value returned by TECO.INI in the search
|
|||
|
verification flag (this feature may change in a subsequent
|
|||
|
release). Q-register W and ES are cleared before the
|
|||
|
post-processing command in Q-register X is executed. Note that
|
|||
|
the chain argument may not contain any embedded nulls.
|
|||
|
|
|||
|
|
|||
|
H.13 RETURNED VALUES FROM TECO.INI
|
|||
|
|
|||
|
TECO.INI may also return a value. If your monitor does not
|
|||
|
support TECO.TEC, then only two values are permitted. Returning
|
|||
|
a 0 (or not returning anything) is the normal sequence of events.
|
|||
|
Returning a 1 means that TECO should execute the contents of
|
|||
|
|
|||
|
Standard TECO PAGE 183
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
Q-register X (via an MX command) after it executes the initial
|
|||
|
TECO command (in Q-register Z). TECO.INI may set up Q-register X
|
|||
|
with the appropriate post-processing commands. A typical use of
|
|||
|
this feature would be to have TECO.INI load up Q-register I with
|
|||
|
an editing macro and then put an "MI" command in Q-register X for
|
|||
|
subsequent execution. If your monitor does have TECO.TEC
|
|||
|
support, then TECO.TEC can support additional returned values.
|
|||
|
It is recommended that TECO.TEC support the returned values of 0
|
|||
|
and 1 as above, but in addition, it may support additional values
|
|||
|
determined by the user.
|
|||
|
|
|||
|
Note that TECO.INI is not invoked if TECO is started with a RUN
|
|||
|
or R command.
|
|||
|
|
|||
|
|
|||
|
H.14 TECO.TEC SUPPORT
|
|||
|
|
|||
|
If the version of CCL you are using to invoke TECO supports
|
|||
|
TECO.TEC, then it will chain to TECO with a 0 at location 17600
|
|||
|
and will pass TECO the invokig CCL command (beginning at location
|
|||
|
17601). If TECO is invoked in this manner, it will parse this
|
|||
|
CCL command by executing the TECO command line parser macro
|
|||
|
stored in SYS:TECO.TEC. This macro can be modified by the user
|
|||
|
to parse switches or do any special processing that is desired.
|
|||
|
TECO.TEC is started up via the command
|
|||
|
|
|||
|
@I^@ccl command^@:ER/SYS:TECO.TEC/"F^ACan't find SYS:TECO.TEC
|
|||
|
^A^C^CA.,ZXV.,ZKMV.,.XV``
|
|||
|
|
|||
|
which puts your CCL command in the text buffer and then loads
|
|||
|
(the first page of) TECO.TEC into Q-register V. TECO.TEC is then
|
|||
|
executed with the MV command and then Q-register V is cleared.
|
|||
|
It is the responsibility of TECO.TEC to parse the command line in
|
|||
|
the text buffer and do the appropriate processing and clean-up.
|
|||
|
It is also the responsibility of TECO.TEC to execute a user's
|
|||
|
start-up file (TECO.INI) if one is present. Note that TECO.TEC
|
|||
|
is not invoked if TECO is started via a RUN or R command. Also
|
|||
|
note, that the CCL command may not contain any embedded nulls.
|
|||
|
|
|||
|
|
|||
|
H.15 OVERLAYS
|
|||
|
|
|||
|
The key to writing fast TECO programs lies in understanding
|
|||
|
TECO-8's overlay structure. If TECO-8 is run in 16K or more (20K
|
|||
|
or more if VT support is present), then the overlays will be
|
|||
|
memory-resident rather than disk-resident. Although this is much
|
|||
|
faster than swapping from the disk, swapping from memory still
|
|||
|
involves some overhead, so it would be wise to structure your
|
|||
|
TECO program to minimize the number of swaps necessary.
|
|||
|
|
|||
|
The overlay structure is designed so that the minimal number of
|
|||
|
swaps will be required unless obscure TECO features are used.
|
|||
|
There are five overlays to TECO:
|
|||
|
|
|||
|
Standard TECO PAGE 184
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
1. The I/O-overlay. This overlay handles file opening and
|
|||
|
is initially resident. Thus no swapping is necessary to
|
|||
|
do an initial ER, EW, or EB.
|
|||
|
|
|||
|
2. The Q-overlay. This overlay contains most of the
|
|||
|
frequently used conditional commands and branching
|
|||
|
commands. It is intended that this overlay swap in once
|
|||
|
and remain in memory until TECO is exited.
|
|||
|
|
|||
|
3. The X-overlay. This is the exit overlay and handles
|
|||
|
commands needed only when TECO is exiting, such as EX,
|
|||
|
EF, EC, and EG. It is intended that this overlay will
|
|||
|
swap in only once when you are ready to leave TECO.
|
|||
|
|
|||
|
4. The F-overlay. This overlay contains the flag commands
|
|||
|
and other little-used commands. It is intended that
|
|||
|
this overlay be not used at all, or if it is used, it
|
|||
|
will be used so infrequently that it will not slow down
|
|||
|
system performance.
|
|||
|
|
|||
|
5. The E-overlay. This is the error overlay. It is
|
|||
|
swapped in only when an error occurs. It is intended
|
|||
|
that this overlay never be swapped in.
|
|||
|
|
|||
|
|
|||
|
To write efficient TECO code, the user must know exactly which
|
|||
|
commands are handled by which overlay. This information is
|
|||
|
summarized below.
|
|||
|
|
|||
|
Overlay Commands
|
|||
|
|
|||
|
I-overlay ERfile`, EWfile`, EBfile`, :ERfile`, :EBfile`
|
|||
|
|
|||
|
Q-overlay Otag`, n"Xthen|else', n;, search;, n<...>, <...>
|
|||
|
|
|||
|
X-overlay EC, EG`, EGcmd`, EF, EK, EX,
|
|||
|
*q, ?, nEJ, n^_, V, ^B, ^E, ^F, ^L, ^N, ^Uqtext`
|
|||
|
|
|||
|
F-overlay ED, EH, EO, ES, ET, EU, ^D, ^O,
|
|||
|
\, n\, n=, n==, n:=, n:==, |
|
|||
|
|
|||
|
Several things are immediately obvious. The command 0TT should
|
|||
|
always be preferred to the V command. ELSE clauses should be
|
|||
|
avoided. (In future releases, we will try to move the processing
|
|||
|
of the | command into overlay Q.) The commands \ and = should be
|
|||
|
used as infrequently as possible from within long-running macros.
|
|||
|
Xq is preferred to ^Uq to load up a Q-register. -n-1 is
|
|||
|
preferred to n^_ to take a one's complement. Radix changes
|
|||
|
should be avoided. Flags, such as ET and ED, should be set once
|
|||
|
at the beginning of a macro, and then not fiddled with if at all
|
|||
|
possible.
|
|||
|
|
|||
|
Standard TECO PAGE 185
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
H.16 INSTALLATION INSTRUCTIONS
|
|||
|
|
|||
|
The source of TECO consists of the following modules:
|
|||
|
|
|||
|
TECO.MAC Main module
|
|||
|
TECINI.MAC Initialization module
|
|||
|
TECTBL.MAC Tables
|
|||
|
TECDEF.MAC Global definitions
|
|||
|
TECO12.MAC VR12 support
|
|||
|
TECOVT.MAC VT support
|
|||
|
TECOVI.MAC I/O-overlay
|
|||
|
TECOVQ.MAC Q-overlay
|
|||
|
TECOVX.MAC X-overlay
|
|||
|
TECOVF.MAC F-overlay
|
|||
|
TECERR.MAC E-overlay and error processor
|
|||
|
TECSRH.MAC Search processor
|
|||
|
TECNUM.MAC Arithmetic processor
|
|||
|
|
|||
|
Each of these modules should be assembled (using MACREL V2 or
|
|||
|
later). This can be accomplished via the command
|
|||
|
|
|||
|
.MAC TEC???.MAC
|
|||
|
|
|||
|
if your monitor supports wildcards in compile-class commands.
|
|||
|
|
|||
|
The resulting relocatable modules are then linked together (using
|
|||
|
LINK V2 or later) to produce the executable TECO.SV image which
|
|||
|
should be put on SYS: (but it may reside on any device). If
|
|||
|
your monitor supports TECO.TEC, then TECO.TEC must be placed on
|
|||
|
SYS:.
|
|||
|
|
|||
|
|
|||
|
H.17 ARITHMETIC PRECISION
|
|||
|
|
|||
|
TECO-8 performs 13-bit arithmetic except that multiplication and
|
|||
|
division by negative numbers gives unpredictable results. All
|
|||
|
numbers stored in Q-registers are 13 bits long. Numbers stored
|
|||
|
in flags (such as ET, EU, etc.) are only 12-bits long. When
|
|||
|
storing a number into a flag, the high order (sign bit) is lost.
|
|||
|
When using the value of a flag in an arithmetic expression, the
|
|||
|
12-bit value is sign extended first.
|
|||
|
|
|||
|
|
|||
|
H.18 ALTERNATE STARTING ADDRESS
|
|||
|
|
|||
|
The normal starting address of TECO is location 00200. In this
|
|||
|
(normal) mode, TECO will simulate tabs by spaces on type out and
|
|||
|
will simulate vertical tabs and form feeds by line feeds. If
|
|||
|
your terminal has hardware tabs and vertical tabs (such as a
|
|||
|
KSR-35), then TECO can take advantage of these features. To
|
|||
|
enable this ability, you should change TECO's starting address to
|
|||
|
be 05200. This can be done by the monitor commands:
|
|||
|
|
|||
|
Standard TECO PAGE 186
|
|||
|
Appendix H
|
|||
|
|
|||
|
|
|||
|
.GET SYS:TECO
|
|||
|
.SAVE SYS:TECO;5200
|
|||
|
|
|||
|
H.19 VT05 SUPPORT
|
|||
|
|
|||
|
TECO will automatically handle command string scope editing
|
|||
|
correctly on a VT05. The VT support (obtained via use of the -1W
|
|||
|
command) will handle VT05's correctly. The VTEDIT macro does not
|
|||
|
currently support the VT05 keypad.
|
|||
|
|
|||
|
Standard TECO PAGE 187
|
|||
|
Appendix I
|
|||
|
|
|||
|
|
|||
|
APPENDIX I
|
|||
|
|
|||
|
|
|||
|
TOPS-10 OPERATING CHARACTERISTICS
|
|||
|
|
|||
|
|
|||
|
I.1 STARTUP
|
|||
|
|
|||
|
TECO is started with the
|
|||
|
|
|||
|
.R TECO
|
|||
|
|
|||
|
command. TECO is now immediately ready to accept commands. The
|
|||
|
text buffer and Q-register areas are empty. Initial commands may
|
|||
|
also be specifified by following the monitor command with a
|
|||
|
dollar sign ($) and then some TECO commands. For example,
|
|||
|
|
|||
|
.R TECO $3EH
|
|||
|
|
|||
|
starts TECO with the help level flag set to 3.
|
|||
|
|
|||
|
The TECO command
|
|||
|
|
|||
|
.TECO filespec
|
|||
|
|
|||
|
is used to edit an already existing file. It is equivalent to
|
|||
|
|
|||
|
.R TECO
|
|||
|
*EBfilespec`Y``
|
|||
|
|
|||
|
TOPS-10 "remembers" the filespec as the name of the last file
|
|||
|
that has been edited.
|
|||
|
|
|||
|
The MAKE command
|
|||
|
|
|||
|
.MAKE filespec
|
|||
|
|
|||
|
is used to create a new file. It is equivalent to
|
|||
|
|
|||
|
.R TECO
|
|||
|
*EWfilespec``
|
|||
|
|
|||
|
TOPS-10 "remembers" the filespec as the name of the last file
|
|||
|
that was edited.
|
|||
|
|
|||
|
The command
|
|||
|
|
|||
|
.MAKE filespec1=filespec2
|
|||
|
|
|||
|
is used to edit filespec2 into filespec1. That is, filespec2 is
|
|||
|
opened as the input file, and filespec1 is created as the output
|
|||
|
file. It is equivalent to
|
|||
|
|
|||
|
Standard TECO PAGE 188
|
|||
|
Appendix I
|
|||
|
|
|||
|
|
|||
|
.R TECO
|
|||
|
*ERfilespec2`EWfilespec1`Y``
|
|||
|
|
|||
|
TOPS-10 "remembers" the filespec1 as the name of the last file
|
|||
|
that was edited.
|
|||
|
|
|||
|
The command
|
|||
|
|
|||
|
.TECO
|
|||
|
|
|||
|
with no arguments, causes CCL to execute the command
|
|||
|
|
|||
|
.TECO filespec
|
|||
|
|
|||
|
where filespec was the file that was previously remembered as the
|
|||
|
last file to be edited. The system purposely does not remember
|
|||
|
filenames from one editing session to the next, that is, when you
|
|||
|
log out, the system "forgets" the name of the file you were
|
|||
|
editing.
|
|||
|
|
|||
|
TECO-10 does not require the use of the MUNG command to execute
|
|||
|
TECO macros because runnable TECO programs can be created via use
|
|||
|
of the EE command and these can then be run with the standard R
|
|||
|
or RUN command. This TECO command has the format
|
|||
|
|
|||
|
EEfilespec`
|
|||
|
|
|||
|
which saves away the current image of TECO in the filename
|
|||
|
specified. The default extension is .EXE. When the file is
|
|||
|
subsequently run (using the R or RUN monitor command), TECO
|
|||
|
resumes execution with the TECO command immediately following the
|
|||
|
EE command.
|
|||
|
|
|||
|
|
|||
|
I.2 STARTUP CONDITIONS
|
|||
|
|
|||
|
The initial value of the EU flag is 0 if you are running on a
|
|||
|
terminal that does not support lower case, and is -1 if you are
|
|||
|
running on a terminal that does support lower case.
|
|||
|
|
|||
|
The initial value of the ET flag is as follows:
|
|||
|
|
|||
|
Bit value Initial value
|
|||
|
|
|||
|
1 0
|
|||
|
2 0 (1 if terminal is a scope)
|
|||
|
4 1
|
|||
|
8 0
|
|||
|
16 0
|
|||
|
32 0
|
|||
|
64 0
|
|||
|
128 1 (TECO's prompt sets this to 0)
|
|||
|
256 0
|
|||
|
|
|||
|
Standard TECO PAGE 189
|
|||
|
Appendix I
|
|||
|
|
|||
|
|
|||
|
512 0 (1 if VT support is present)
|
|||
|
1024 0
|
|||
|
2048 0
|
|||
|
|
|||
|
The initial value of the ED flag is 1.
|
|||
|
|
|||
|
|
|||
|
I.3 FILE SPECIFICATION
|
|||
|
|
|||
|
The file access commands ER, EB, and EW accept a file
|
|||
|
specification in the standard TOPS-10 format:
|
|||
|
|
|||
|
dev:filename.type[p,pn]
|
|||
|
|
|||
|
in which dev: is a physical device name or a user assigned
|
|||
|
logical name; if dev: is not specified, the default DSK: is
|
|||
|
assumed. The filename field must be specified in the commands
|
|||
|
ER, EB, and EW and be a legal TOPS-10 filename. The type field
|
|||
|
is a file extension and must be explicitly given the first time.
|
|||
|
Thereafter, if a corresponding command is given with no extension
|
|||
|
specified, the system uses the previously specified extension as
|
|||
|
the default. The same defaulting rules hold for the dev: field.
|
|||
|
The <prot> construct is permitted on any output filespecification
|
|||
|
to allow setting the protection of the file being created.
|
|||
|
|
|||
|
|
|||
|
I.4 BACKUP FILES
|
|||
|
|
|||
|
The EB command maintains one level of file backup on TOPS-10.
|
|||
|
The pre-edited input file name is changed to
|
|||
|
|
|||
|
filename.BAK
|
|||
|
|
|||
|
before the new output file is closed with the original name.
|
|||
|
Only normal file closing commands (EC, EF, EG, and EX) cause this
|
|||
|
renaming to happen. If TECO is aborted or the output file is
|
|||
|
purged by the EK command, the input filename remains unchanged.
|
|||
|
Note only one .BAK file for a given name is kept; earlier .BAK
|
|||
|
backup files are deleted each time a new backup file is created.
|
|||
|
|
|||
|
A good policy to follow when editing is to close the edited file
|
|||
|
frequently enough so that an unexpected incident would not cause
|
|||
|
a substantial loss of work. Files should be backed up regularly.
|
|||
|
TECO has the power to let an unsuspecting user alter a good file
|
|||
|
into a completely useless state. The FILCOM program can be used
|
|||
|
to verify an editing session.
|
|||
|
|
|||
|
|
|||
|
I.5 EXIT AND GO
|
|||
|
|
|||
|
If TECO is exited via the EG` command, then TOPS-10 will
|
|||
|
re-execute the last explicit compile-class command that was
|
|||
|
executed during that session.
|
|||
|
|
|||
|
Standard TECO PAGE 190
|
|||
|
Appendix I
|
|||
|
|
|||
|
|
|||
|
I.6 <CTRL/C>
|
|||
|
|
|||
|
The action taken when the user types <CTRL/C> depends on what
|
|||
|
TECO is doing. At command level <CTRL/C> is an immediate action
|
|||
|
command. If typed as the very first character in a command
|
|||
|
string (not necessarily the first keystroke) it aborts TECO and
|
|||
|
returns to the monitor. No Control-C trapping is available under
|
|||
|
TOPS-10. The ?XAB error message is not supported. If <CTRL/C>
|
|||
|
is typed in the middle of entering a command string, then TECO
|
|||
|
returns control to the monitor. Note that if TECO executes
|
|||
|
<CTRL/C> as a command from command level, TECO is aborted. If
|
|||
|
TECO executes a <CTRL/C> command from within a macro, TECO is
|
|||
|
also aborted. If two consecutive <CTRL/C>s are typed while TECO
|
|||
|
is running, or while TECO is typing on the terminal, or while an
|
|||
|
error message is printing, then control returns to the operating
|
|||
|
system. If one <CTRL/C> is typed to TECO while it is waiting for
|
|||
|
input, then control returns to the operating system.
|
|||
|
|
|||
|
|
|||
|
I.7 EXCEPTIONS
|
|||
|
|
|||
|
TECO-10 does not support the following commands which are
|
|||
|
described in this manual:
|
|||
|
|
|||
|
1. Secondary streams (EP, EA, ER`, EW`)
|
|||
|
|
|||
|
2. Wildcards (EN)
|
|||
|
|
|||
|
3. Immediate aids LF and BS.
|
|||
|
|
|||
|
The following incompatibilities exist between TECO-10 and DEC's
|
|||
|
TOPS-10 TECO V24:
|
|||
|
|
|||
|
1. The nA command under TOPS-10 TECO V24 always returned
|
|||
|
the value of the current character, regardless of the
|
|||
|
value of n. In TECO-10, 0A gives the value of the
|
|||
|
current character.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
I.8 USER INITIALIZATION
|
|||
|
|
|||
|
If a user has a file called TECO.INI in his area, then when TECO
|
|||
|
starts up (via a CCL command), it will execute the contents of
|
|||
|
this file (as a TECO macro). This file must contain a valid TECO
|
|||
|
program. TECO.INI will be executed before TECO opens any files.
|
|||
|
That is, if TECO was invoked via a MAKE command, TECO.INI will be
|
|||
|
executed before the EW command (for the MAKE) is executed.
|
|||
|
|
|||
|
Standard TECO PAGE 191
|
|||
|
Appendix I
|
|||
|
|
|||
|
|
|||
|
I.9 INSTALLATION INSTRUCTIONS
|
|||
|
|
|||
|
To create TECO for TOPS-10 from the sources, issue the following
|
|||
|
commands:
|
|||
|
|
|||
|
.LOAD/MAC/COMPILE TECO10.T10+TECO10.MAC
|
|||
|
.SAVE TECO10
|
|||
|
.LOAD/MAC/COMPILE TECERR.T10+TECO10.MAC
|
|||
|
.SAVE TECERR
|
|||
|
|
|||
|
To create TECO for TOPS-20 from the sources, issue the following
|
|||
|
commands:
|
|||
|
|
|||
|
@LOAD/MAC/COMPILE TECO10
|
|||
|
@SAVE TECO20
|
|||
|
|
|||
|
This builds a raw TECO. This version of TECO does not contain
|
|||
|
any window support since the W and :W commands are implemented as
|
|||
|
macros. To load window support, issue the following commands:
|
|||
|
|
|||
|
.RUN TECO10 (or TECO20)
|
|||
|
*EITECO10.TEC``
|
|||
|
*EETECO``
|
|||
|
|
|||
|
You now have a runnable TECO image with window support.
|
|||
|
|
|||
|
I.10 TMPCOR SUPPORT
|
|||
|
|
|||
|
The EQ and E% commands support the pseudo-device TMP: for
|
|||
|
TMPCOR. Only the first three letters of the file name will be
|
|||
|
used, to try and access a TMPCOR file. If that fails, it will
|
|||
|
try nnnNAM.TMP where nnn is your job number and NAM is the
|
|||
|
three-character name. For example: for job 23, EQqTMP:FOOBAR`
|
|||
|
will read TMPCOR file FOO or 023FOO.TMP.
|
|||
|
|
|||
|
I.11 Q-REGISTER NAMES
|
|||
|
|
|||
|
Any printable character (except open parenthesis) is valid as a
|
|||
|
Q-register name. A Q-register whose name is a lower case
|
|||
|
alphabetic character is the same as the Q-register whose name
|
|||
|
consists of the corresponding upper case letter. Thus Qa and QA
|
|||
|
are equivalent commands. Q-register names may also be up to 6
|
|||
|
characters long, by enclosing the name in parentheses, for
|
|||
|
example, Q(FOOBAR). Q-register names may contain any printable
|
|||
|
characters, however all characters other than letters, digits,
|
|||
|
dollar-sign, space, and underline are reserved for special use by
|
|||
|
TECO. A Q-register name consisting entirely of zero or more
|
|||
|
spaces is the same as Q-register (), which is special and
|
|||
|
discussed below. Trailing spaces in Q-register names are
|
|||
|
discarded, and lower case is converted to upper case.
|
|||
|
|
|||
|
Standard TECO PAGE 192
|
|||
|
Appendix I
|
|||
|
|
|||
|
|
|||
|
I.12 REFERENCING THE TEXT BUFFER AS A Q-REGISTER
|
|||
|
|
|||
|
The Q-register with the null name: () is the text buffer. The
|
|||
|
numeric part of this Q-register is the value of dot. The
|
|||
|
sequence [A ]() causes Q-register A to share with the text
|
|||
|
buffer. The old main text buffer is lost (unless it is also
|
|||
|
sharing with some Q-register or if it has been saved on the
|
|||
|
Q-register push-down list). The text in Q-register A becomes the
|
|||
|
text buffer and the numeric part of Q-register A is used for "."
|
|||
|
if it is in range, otherwise dot is set to 0.
|
|||
|
|
|||
|
I.13 SHARING OF Q-REGISTER POINTERS
|
|||
|
|
|||
|
Q-registers may share their text with each other and with the
|
|||
|
text buffer as a result of [ and ] commands. When a Q-register
|
|||
|
is pushed onto the Q-register pushdown list, all that is pushed
|
|||
|
is the numeric part of the Q-register and a pointer to the text
|
|||
|
part of the Q-register. Thus a command such as [A ]B would cause
|
|||
|
Q-registers A and B to share the same text. The commands X, ^U,
|
|||
|
and EQ could be applied to either Q-register without modifying
|
|||
|
the other, since the Q-register is unbound from its previous text
|
|||
|
first. However, the colon-modified forms of X and ^U append to
|
|||
|
the existing text, so a :X or :^U command for either of them
|
|||
|
would affect the other.
|
|||
|
|
|||
|
I.14 EDITING LINE SEQUENCE NUMBERED FILES
|
|||
|
|
|||
|
Some ASCII files have a special type of line number at the
|
|||
|
beginning of each line. These "line-sequence numbers" conform to
|
|||
|
certain rules so that they may be ignored or treated specially by
|
|||
|
compilers and other programs. The standards for line-sequence
|
|||
|
numbers are given in the LINED Program Reference Manual.
|
|||
|
|
|||
|
TECO does not need line-sequence numbers for operation, but TECO
|
|||
|
can be used to edit files containing them. If such a file is
|
|||
|
edited with TECO-10, the line-sequence numbers are, in the normal
|
|||
|
case, simply preserved as additional text at the beginning of
|
|||
|
each line. The line-sequence numbers may be deleted, edited, and
|
|||
|
inserted exactly like any other text. On output, the
|
|||
|
line-sequence numbers are output according to the standard,
|
|||
|
except that the tab after the number is output only if it is
|
|||
|
already there. Leading zeros are added as necessary. If a line
|
|||
|
without a line-sequence number is encountered, a line-sequence
|
|||
|
number word of five spaces is placed at the beginning of the
|
|||
|
line.
|
|||
|
|
|||
|
The following switches are available for use with line-sequence
|
|||
|
numebred files. These switches are merely added to the
|
|||
|
appropriate file selection command.
|
|||
|
|
|||
|
ERfilespec/SUPLSN`
|
|||
|
EBfilespec/SUPLSN`
|
|||
|
|
|||
|
Standard TECO PAGE 193
|
|||
|
Appendix I
|
|||
|
|
|||
|
|
|||
|
causes line sequence numbers to be suppressed at input time. The
|
|||
|
numbers will not be read into the editing buffer. Also, the tabs
|
|||
|
following the line-sequence numbers, if they exist, will be
|
|||
|
suppressed.
|
|||
|
|
|||
|
EWfilespec/SUPLSN`
|
|||
|
|
|||
|
causes the line-sequence numbers to be suppressed at output time.
|
|||
|
Tabs following the line-sequence numbers will also be suppressed
|
|||
|
if they exist.
|
|||
|
|
|||
|
EWfilespec/GENLSN`
|
|||
|
EBfilespec/GENLSN`
|
|||
|
|
|||
|
causes line sequence numbers to be generated for the output file
|
|||
|
if they did not already exist in the input file. Generated
|
|||
|
line-sequence numbers begin at 00010 and continue with increments
|
|||
|
of 10 for each line.
|
|||
|
|
|||
|
Note that these switches are needed only if a change is to be
|
|||
|
made in the format of the file being edited. If no switches are
|
|||
|
specified, a file is output in the same form as it was input.
|
|||
|
|
|||
|
I.15 COMPILER RESTRICTIONS
|
|||
|
|
|||
|
TECO-10 is a compiler rather than an interpreter. This means,
|
|||
|
that before your command string is executed, TECO-10 compiles it
|
|||
|
into assembly language code. This makes it must faster than most
|
|||
|
other TECOs. Before executing a macro (with the Mq command) TECO
|
|||
|
compiles the program in the macro. The next time the macro is
|
|||
|
executed, TECO notes that the macro has already been compiled and
|
|||
|
merely branches to the compiled code. If the contents of the
|
|||
|
Q-register are changed (via an X or U command), then TECO notes
|
|||
|
that it must re-compile the commands should the Q-register be
|
|||
|
invoked as a macro.
|
|||
|
|
|||
|
One consequence of this is that if a syntax error is detected in
|
|||
|
a command, no portion of that command will have been executed.
|
|||
|
For example, typing the command HK= will yield the ?NAE error
|
|||
|
message and the text buffer will NOT be cleared. Another
|
|||
|
consequence of this is that you must not invoke a macro two
|
|||
|
different times using two different numbers of arguments. If a
|
|||
|
macro gets initially invoked with two arguments, then all
|
|||
|
subsequent invocations must supply two arguments. Also, TECO
|
|||
|
cannot tell while compiling an Mq command whether or not the
|
|||
|
macro returns a value. Therefore it assumes that a value is
|
|||
|
always returned. This value can be explicitly removed by
|
|||
|
followed the Mq command with an <ESCAPE>. The MqA command will
|
|||
|
compile the A command as if it were an nA command rather than an
|
|||
|
APPEND.
|
|||
|
|
|||
|
Standard TECO PAGE 194
|
|||
|
Appendix J
|
|||
|
|
|||
|
|
|||
|
APPENDIX J
|
|||
|
|
|||
|
|
|||
|
BASIC-PLUS/BASIC-PLUS-2 HANDLING
|
|||
|
|
|||
|
|
|||
|
J.1 PURPOSE
|
|||
|
|
|||
|
In BASIC-PLUS and BASIC-PLUS-2 a program statement may be
|
|||
|
continued over more than one text line. A text line which is not
|
|||
|
the last text line of a given statement may need to be flagged as
|
|||
|
a "continued" line. (See the appropriate language reference
|
|||
|
manual for requirements of each version of each language
|
|||
|
processor.)
|
|||
|
|
|||
|
The standard continuation flag is the & character. A line which
|
|||
|
must be marked as "continued" is written with an & as the last
|
|||
|
non-whitespace character before the <CR><LF>.
|
|||
|
|
|||
|
(An older form of continuation was, in BASIC-PLUS only, to end
|
|||
|
the text line by typing a <LF> key instead of <CR>.)
|
|||
|
|
|||
|
The switches described in this appendix cause TECO to manipulate
|
|||
|
the text files in such a way that each text line appears in the
|
|||
|
editing buffer to be completely "conventional": that is, each
|
|||
|
text line ends with a standard <CR><LF>, and no text line has a
|
|||
|
trailing & character. You can correctly edit well-formed
|
|||
|
BASIC-PLUS or BASIC-PLUS-2 source files without having to be
|
|||
|
concerned about continuation conventions.
|
|||
|
|
|||
|
|
|||
|
J.2 METHOD
|
|||
|
|
|||
|
TECO allows you to work with "unemcumbered" lines in the editing
|
|||
|
buffer by removing continuation conventions as each text line is
|
|||
|
read in. You indicate that you want this processing by
|
|||
|
specifying a switch on the file specification supplied to the ER
|
|||
|
(or the EB) command.
|
|||
|
|
|||
|
TECO (again) adds appropriate continuation conventions to each
|
|||
|
text line as it is written out from the editing buffer. You
|
|||
|
indicate that you want this processing by specifying a switch on
|
|||
|
the file specification supplied to the EW (or the EB) command.
|
|||
|
|
|||
|
|
|||
|
J.3 INPUT PROCESSING
|
|||
|
|
|||
|
As TECO reads each new text line into the editing buffer, it is
|
|||
|
examined for a trailing & character. If one is found, TECO
|
|||
|
removes it, and then additionally removes any trailing spaces
|
|||
|
and/or tabs.
|
|||
|
|
|||
|
(In the case of <LF> continuation, TECO converts that kind of
|
|||
|
|
|||
|
Standard TECO PAGE 195
|
|||
|
Appendix J
|
|||
|
|
|||
|
|
|||
|
line terminator character sequence to <CR><LF>.)
|
|||
|
|
|||
|
The available switches follow. (Consult the appropriate appendix
|
|||
|
to see which switches are supported on your operating system.)
|
|||
|
|
|||
|
/B2 TECO strips trailing & sequences
|
|||
|
|
|||
|
/n Same as /B2 for input processing
|
|||
|
|
|||
|
/B+ TECO changes <LF><CR><NUL>
|
|||
|
sequences to <CR><LF>.
|
|||
|
|
|||
|
|
|||
|
J.4 OUTPUT PROCESSING
|
|||
|
|
|||
|
As TECO writes each text line from the editing buffer, it takes a
|
|||
|
look at the text line which will follow. If the following line
|
|||
|
begins with a digit, the current line is written without change.
|
|||
|
If the following line does not begin with a digit, TECO assumes
|
|||
|
that the current line must be continued.
|
|||
|
|
|||
|
The convention applied to an output text line which TECO marks as
|
|||
|
"continued" depends on the form of the switch you specify.
|
|||
|
(Consult the appropriate appendix to see which switches are
|
|||
|
supported on your operating system.)
|
|||
|
|
|||
|
/B2 TECO appends a space and an &
|
|||
|
|
|||
|
/n TECO appends an &, after padding out
|
|||
|
the line with tabs and/or spaces to make
|
|||
|
the & appear in column n
|
|||
|
|
|||
|
/B+ TECO ends the line with a
|
|||
|
<LF><CR><NUL> sequence
|
|||
|
(instead of <CR><LF>.)
|
|||
|
|
|||
|
|
|||
|
J.5 FORM FEED INTERACTION
|
|||
|
|
|||
|
When TECO reads a page of text into the editing buffer, it stops
|
|||
|
when a <form feed> character is encountered, or when the buffer
|
|||
|
has been filled to capacity. In the latter case, the last line
|
|||
|
will be complete, and will include its line delimiter. However,
|
|||
|
no look-ahead is done to examine the next line in the file.
|
|||
|
|
|||
|
If TECO is being used with one of the switches described in this
|
|||
|
appendix, a very long BASIC-PLUS-x source program which is not
|
|||
|
segmented with <FF> characters can cause the last line in the
|
|||
|
buffer to not be the last text line of a multi-line source
|
|||
|
statement.
|
|||
|
|
|||
|
When the buffer is written to the output file, TECO has no way of
|
|||
|
determining whether the next text line (the first line of the
|
|||
|
|
|||
|
Standard TECO PAGE 196
|
|||
|
Appendix J
|
|||
|
|
|||
|
|
|||
|
next buffer load) will begin with a line number. TECO makes the
|
|||
|
assumption that the buffer's last text line is not to be
|
|||
|
"continued", and terminates it with <CR><LF>. If this assumption
|
|||
|
is incorrect (frequently the case), remaining text lines of that
|
|||
|
multi-line statement will be lost when the program is
|
|||
|
subsequently OLDed.
|
|||
|
|
|||
|
To avoid this problem, lengthy BASIC-PLUS or BASIC-PLUS-2
|
|||
|
programs should be segmented with <form feed> characters before
|
|||
|
editing them using these TECO switches. Segments of
|
|||
|
approximately 150 to 200 lines are convenient. Starting a new
|
|||
|
page even more frequently to make listings readable isn't a bad
|
|||
|
idea, either.
|
|||
|
|
|||
|
Standard TECO PAGE 197
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
GLOSSARY OF OBSCURE TECO TERMS
|
|||
|
|
|||
|
|
|||
|
Accent grave
|
|||
|
The ` character. Echoed for TECO's text and
|
|||
|
command string delimiter when an ESCape surrogate
|
|||
|
is in effect. Actually set as the ESCape
|
|||
|
surrogate by the 8192 ET bit.
|
|||
|
|
|||
|
Abort-on-error bit
|
|||
|
The 128's bit of the ET flag. If this bit is set,
|
|||
|
then TECO will abort execution on encountering an
|
|||
|
error (after printing the error message) and
|
|||
|
control returns to the operating system. This bit
|
|||
|
is initially set when TECO starts up, but is reset
|
|||
|
whenever TECO issues its prompt.
|
|||
|
|
|||
|
<ALTMODE> One of several characters that TECO treats
|
|||
|
specially for use as a delimiter. Known as ESCAPE
|
|||
|
in more recent times, but traditional TECO users
|
|||
|
will still go on ending their command strings with
|
|||
|
"ALT" "ALT".
|
|||
|
|
|||
|
Anchored search
|
|||
|
A search (S) or search and replace (FS) command
|
|||
|
that is preceded by a ::. This indicates that the
|
|||
|
search must match the characters immediately
|
|||
|
following the current pointer position. If these
|
|||
|
characters do not match, no further searching is
|
|||
|
performed and the text buffer pointer does not
|
|||
|
move.
|
|||
|
|
|||
|
Argument pair A command of the form m,n where m and n are
|
|||
|
numbers (or TECO commands that return numbers).
|
|||
|
When used before a command that normally acts on
|
|||
|
lines, the argument pair causes the command to
|
|||
|
work on characters. The characters specified by
|
|||
|
this argument pair is the set of characters
|
|||
|
between pointer positions m and n. The number m
|
|||
|
should normally be less than or equal to n.
|
|||
|
|
|||
|
ASCII code The American Standard Code for Information
|
|||
|
Interchange. The code used by TECO to represent
|
|||
|
characters internally. Consult Appendix A for
|
|||
|
details.
|
|||
|
|
|||
|
@-sign modified command
|
|||
|
A command that is preceded by an @-sign modifier.
|
|||
|
|
|||
|
@-sign modifier
|
|||
|
An at-sign (@) that proceeds a command. It
|
|||
|
indicates to TECO that the string argument to the
|
|||
|
command is to delimited on both sides by a
|
|||
|
|
|||
|
Standard TECO PAGE 198
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
user-supplied delimiter rather than to be
|
|||
|
delimited only at the end by a TECO-designated
|
|||
|
delimiter (normally <ESCAPE>).
|
|||
|
|
|||
|
Automatic refresh
|
|||
|
A refresh of the buffer display done when
|
|||
|
scrolling is active (when 7:W is non-zero) just
|
|||
|
before TECO issues its asterisk prompt. Automatic
|
|||
|
refresh can be disabled by the 128 ED bit.
|
|||
|
|
|||
|
Automatic type out
|
|||
|
The feature of TECO that causes lines of text to
|
|||
|
be automatically typed out. The ES flag may be
|
|||
|
used to control the automatic type out of lines
|
|||
|
after search commands, and the EV flag may be used
|
|||
|
to cause automatic type out of lines after command
|
|||
|
execution.
|
|||
|
|
|||
|
Auto-trace mode
|
|||
|
A mode that TECO goes into when the 4's bit of the
|
|||
|
EH (Help-level) flag is set. In this mode, TECO
|
|||
|
will automatically print out the erroneous command
|
|||
|
string after an error occurs.
|
|||
|
|
|||
|
Backup protection
|
|||
|
The process of preserving the user's original file
|
|||
|
(as a backup) when editing that file with the EB
|
|||
|
(Edit with Backup) command.
|
|||
|
|
|||
|
Backwards searches
|
|||
|
A search that proceeds in the backwards direction.
|
|||
|
If the string being looked for does not occur at
|
|||
|
the current pointer position, the pointer position
|
|||
|
is moved back one character and the search is
|
|||
|
tried again. This continues until the string is
|
|||
|
found or until the boundary of the search has been
|
|||
|
reached or until the beginning of the current text
|
|||
|
buffer has been reached. Backward searches are
|
|||
|
initiated by using a negative argument to a search
|
|||
|
command or by using an argument pair m,n with m
|
|||
|
greater than n to an FB or FC command.
|
|||
|
|
|||
|
Bounded searches
|
|||
|
A search command that requires searching only a
|
|||
|
portion of the text buffer. Of particular
|
|||
|
importance is the case where you only want to
|
|||
|
search the current line for a given string.
|
|||
|
Bounded searches are accomplished using the FB
|
|||
|
command.
|
|||
|
|
|||
|
Case flagging A mode of TECO wherein, on type out, it will flag
|
|||
|
alphabetic characters (in either upper or lower
|
|||
|
case) by preceding them with a single quote.
|
|||
|
|
|||
|
Standard TECO PAGE 199
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
Lower case flagging is particularly useful on
|
|||
|
terminals that do not display lower case. Case
|
|||
|
flagging is controlled by EU, the case flag.
|
|||
|
Setting EU to 0 sets lower case flagging mode;
|
|||
|
setting EU to 1 sets upper case flagging mode, and
|
|||
|
setting EU to -1 removes all case flagging.
|
|||
|
|
|||
|
Character-oriented editor
|
|||
|
An editor that allows modification of single
|
|||
|
characters, so that if just one character of a
|
|||
|
line is wrong, the entire line does not have to be
|
|||
|
retyped. TECO is a character-oriented editor
|
|||
|
(although it has a number of facilities for
|
|||
|
dealing with text lines, too).
|
|||
|
|
|||
|
Colon-modified command
|
|||
|
A command that is preceded by a colon (:)
|
|||
|
modifier.
|
|||
|
|
|||
|
Colon-modifier
|
|||
|
A colon preceding a TECO command, used to indicate
|
|||
|
that the action of the command is to change.
|
|||
|
Frequently indicates that the command is to return
|
|||
|
a value (-1 if the command succeeded, 0 if the
|
|||
|
command failed).
|
|||
|
|
|||
|
Command line The current line of the command string that is
|
|||
|
being typed into TECO.
|
|||
|
|
|||
|
Command string scope editing
|
|||
|
The feature of TECO that is enabled when editing
|
|||
|
is performed on a CRT terminal. In this mode,
|
|||
|
typing the immediate action <DELETE> command
|
|||
|
causes the character deleted from the command
|
|||
|
string to physically disappear from the screen.
|
|||
|
Other commands, such as <CTRL/U> also behave
|
|||
|
differently, taking best advantage of the
|
|||
|
properties of a video terminal.
|
|||
|
|
|||
|
Command string
|
|||
|
The string of TECO commands that is currently
|
|||
|
being typed into TECO, or is currently being
|
|||
|
executed by TECO.
|
|||
|
|
|||
|
Comment An informative message used within a TECO program,
|
|||
|
to make the code more readable. The comment
|
|||
|
explains the meaning and purpose of the associated
|
|||
|
TECO commands. The comment is enclosed in
|
|||
|
exclamation marks.
|
|||
|
|
|||
|
Compile-class command
|
|||
|
A set of operating systems commands (such as
|
|||
|
COMPILE) that causes compilation (translation) of
|
|||
|
|
|||
|
Standard TECO PAGE 200
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
a source file written in a computer language into
|
|||
|
machine instructions. The EG` command is useful
|
|||
|
to finish an editing session and re-execute the
|
|||
|
last compile-class command (normally a command
|
|||
|
that compiles the file that was just edited).
|
|||
|
|
|||
|
Conditional A TECO language construct used to specify code to
|
|||
|
be conditionally executed depending upon the
|
|||
|
results of some test. The most general form of
|
|||
|
the TECO conditional is
|
|||
|
n"X <then-clause> | <else-clause> '
|
|||
|
which tests the number n using condition X (See
|
|||
|
section 5.13 for details). The commands specified
|
|||
|
by the <then-clause> are executed if the condition
|
|||
|
succeeds, otherwise the commands specified by the
|
|||
|
<else-clause> are executed.
|
|||
|
|
|||
|
Control-character
|
|||
|
An ASCII character whose octal code is in the
|
|||
|
range 0-37. Usually denoted in this manual by
|
|||
|
<CTRL/X> where X is the character whose ASCII code
|
|||
|
is 100 (octal) greater than the ASCII code for the
|
|||
|
control character being represented. TECO
|
|||
|
displays such a character as ^X (Caret-X) except
|
|||
|
for <TAB>, <LF>, <VT>, <FF>, AND <CR> which have
|
|||
|
their normal display, and <ESC> which is displayed
|
|||
|
as $ (dollar sign) or, if a user-designated ESCAPE
|
|||
|
surrogate is in effect, as ` (accent grave).
|
|||
|
Anytime a single control-character, <CTRL/X> is a
|
|||
|
valid TECO command, the two-character sequence,
|
|||
|
^X, may be used instead.
|
|||
|
|
|||
|
<CTRL/C> trapping
|
|||
|
A mode of operation wherein a TECO macro will
|
|||
|
regain control (rather than TECO) when <CTRL/C> or
|
|||
|
<CTRL/C><CTRL/C> is typed on the user's terminal
|
|||
|
to abort execution of the current command string.
|
|||
|
<CTRL/C> trapping is enabled by setting the
|
|||
|
high-order bit of the ET flag.
|
|||
|
|
|||
|
Current character
|
|||
|
The character immediately following the current
|
|||
|
text buffer pointer position.
|
|||
|
|
|||
|
Cursor A visible pattern on a CRT terminal (usually
|
|||
|
blinking) that would specify to a true scope
|
|||
|
editor (like VTEDIT) the current location of the
|
|||
|
text buffer pointer, or which would specify the
|
|||
|
location where subsequently typed characters would
|
|||
|
be displayed.
|
|||
|
|
|||
|
Standard TECO PAGE 201
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
<DELIM> Terminology in this manual for an ESCape typed at
|
|||
|
the console and passed to TECO. On newer
|
|||
|
terminals, there may be no ESCape key. Some
|
|||
|
versions of TECO provide for an "ESCape
|
|||
|
surrogate", a user-designated key which is to
|
|||
|
cause transmission of an ESCape to TECO. The term
|
|||
|
<DELIM> is used to indicate an ESCape transmitted
|
|||
|
to TECO whether it was generated by the designated
|
|||
|
"surrogate" key or by a "real" ESCape key. An
|
|||
|
ESCape types out as ` when a surrogate is active,
|
|||
|
but as $ when no surrogate is active.
|
|||
|
|
|||
|
Destructive search
|
|||
|
A form of global search in which pages of text
|
|||
|
that are passed over (because they did not contain
|
|||
|
the string being searched for) are discarded
|
|||
|
rather than written to the output file.
|
|||
|
Destructive searches are initiated in TECO via use
|
|||
|
of the _ command.
|
|||
|
|
|||
|
Display editor
|
|||
|
A true display editor is on which makes efficent
|
|||
|
use of a CRT terminal or display scope. Such an
|
|||
|
editor maintains a "window" into the text being
|
|||
|
edited. As characters are typed on the terminal,
|
|||
|
these characters immediately are entered into the
|
|||
|
text buffer and the window is immediately updated
|
|||
|
to reflect this change. With the help of some
|
|||
|
macro support, TECO can be made to be a true
|
|||
|
display editor. A more modest use of a CRT
|
|||
|
terminal (and which requires no macro support) is
|
|||
|
scrolling, q.v.
|
|||
|
|
|||
|
Dot A mnemonic for "the current text buffer pointer
|
|||
|
position". Stems from the fact that the . (dot,
|
|||
|
or period) TECO command returns this number as its
|
|||
|
value.
|
|||
|
|
|||
|
E command One of several two-character TECO commands that
|
|||
|
start with the letter 'E'.
|
|||
|
|
|||
|
Echo mode A normal mode of operation in which TECO will
|
|||
|
automatically echo (display) each character that
|
|||
|
is typed in response to a ^T command. Opposite of
|
|||
|
no-echo mode. This mode is controlled by the 8's
|
|||
|
bit of the ET flag. (0 means no-echo mode.)
|
|||
|
|
|||
|
ED flag The edit level flag.
|
|||
|
|
|||
|
Edit-class command
|
|||
|
A type of operating system command (such as MAKE
|
|||
|
and TECO) that specifies that file editing is to
|
|||
|
occur. Many operating systems remember the
|
|||
|
|
|||
|
Standard TECO PAGE 202
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
argument specified with the last Edit-class
|
|||
|
command, so that the next time an edit-class
|
|||
|
command is used without an argument, the previous
|
|||
|
argument can be recalled.
|
|||
|
|
|||
|
Edit level flag
|
|||
|
A bit-encoded flag, referenced by the ED command,
|
|||
|
that describes how TECO should behave with
|
|||
|
reference to certain features. See section 5.16
|
|||
|
for more details.
|
|||
|
|
|||
|
Edit verify flag
|
|||
|
A flag that describes how TECO should act after
|
|||
|
processing of a command string. This flag can be
|
|||
|
set so that TECO will display the line just edited
|
|||
|
on the terminal after each command. See section
|
|||
|
5.16 for more details.
|
|||
|
|
|||
|
EH flag The help level flag.
|
|||
|
|
|||
|
Either-case search mode
|
|||
|
A standard mode of operation in which alphabetic
|
|||
|
characters specified within a search string are
|
|||
|
permitted to match a corresponding character of
|
|||
|
either upper or lower case.
|
|||
|
|
|||
|
Else-clause The part of a conditional command that is executed
|
|||
|
if the condition is not satisfied. In TECO, these
|
|||
|
are the commands that occur between the | and the
|
|||
|
' characters within the conditional construct.
|
|||
|
|
|||
|
End-of-file flag
|
|||
|
A read-only flag, referenced by the ^N command
|
|||
|
that specifies whether or not end-of-file has been
|
|||
|
seen on the currently selected input stream. A
|
|||
|
value of 0 means that end-of-file has not been
|
|||
|
seen; a value of -1 means that end-of-file has
|
|||
|
been reached. This flag is initially 0 and is
|
|||
|
reset to 0 each time a new file is selected for
|
|||
|
input.
|
|||
|
|
|||
|
EO level The current version level of TECO-10.
|
|||
|
|
|||
|
ES flag The search verification flag.
|
|||
|
|
|||
|
<ESCAPE> The character whose ASCII code is 33 (octal). It
|
|||
|
is a general-purpose delimiter used by TECO.
|
|||
|
Traditionally known as an <ALTMODE>. When no
|
|||
|
ESCape surrogate is active, an ESCape types out as
|
|||
|
$ (dollar sign). See also <DELIM>.
|
|||
|
|
|||
|
Standard TECO PAGE 203
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
ESCape surrogate
|
|||
|
A character (designated via the 8192 ET bit, or
|
|||
|
via the EE flag) which causes an ESCape to be
|
|||
|
transmitted to TECO. When an ESCape surrogate is
|
|||
|
active, an ESCape types out as ` (accent grave).
|
|||
|
See also <DELIM>.
|
|||
|
|
|||
|
ET flag The terminal characteristics flag
|
|||
|
|
|||
|
EU flag The upper/lower case flag.
|
|||
|
|
|||
|
EV flag The edit verify flag.
|
|||
|
|
|||
|
Exact-case search mode
|
|||
|
A mode of operation in which alphabetic characters
|
|||
|
within a search string must match the exact case
|
|||
|
(upper case or lower case) of characters
|
|||
|
specified.
|
|||
|
|
|||
|
Exit Protection
|
|||
|
A protective feature of TECO that prevents a user
|
|||
|
from exiting TECO if a potential los of data is
|
|||
|
imminent. The EX and EG commands are aborted
|
|||
|
(with the ?NFO error message) if there is text in
|
|||
|
the text buffer, but no output file is open.
|
|||
|
|
|||
|
F command One of several two-character TECO commands that
|
|||
|
start with the letter 'F'.
|
|||
|
|
|||
|
Flag A data register used by TECO to control various
|
|||
|
modes of operation. The contents of the flag are
|
|||
|
set by specifying the new value before the flag
|
|||
|
name; and the contents are returned by using the
|
|||
|
flag name without a numeric argument. The TECO
|
|||
|
flags are: ^X, ^E, ^N, ED, EE, EH, EO, ES, ET,
|
|||
|
EU, and EV.
|
|||
|
|
|||
|
Flow command A TECO-11 command that is used to flow (branch) to
|
|||
|
a particular flow control character. The flow
|
|||
|
commands are F<, F>, F', and F|.
|
|||
|
|
|||
|
Form feed flag
|
|||
|
A read-only flag, referenced by the ^E command
|
|||
|
that specifies whether the previous append from
|
|||
|
the input file terminated because of encountering
|
|||
|
a form feed character in the input file, or
|
|||
|
because the text buffer became nearly full. The
|
|||
|
value of this flag is automatically set to -1 by
|
|||
|
TECO if input is terminated by the presence of a
|
|||
|
form feed character in the input file.
|
|||
|
|
|||
|
Standard TECO PAGE 204
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
Garbage collection
|
|||
|
A process used by TECO-10 to collect unused memory
|
|||
|
when more memory is required.
|
|||
|
|
|||
|
Global Q-register
|
|||
|
A Q-register available throughout all macro levels
|
|||
|
(including "outside", or at prompt level). Global
|
|||
|
Q-registers are named A-Z and 0-9. See also Local
|
|||
|
Q-Registers, and section 3.3.2.
|
|||
|
|
|||
|
Global search A type of search that continues through the entire
|
|||
|
input file until the specified characters are
|
|||
|
found. Successive pages of the file are read into
|
|||
|
the text buffer and then written out into the
|
|||
|
output file (if the string is not located).
|
|||
|
Global searches in TECO are initiated via the N
|
|||
|
command.
|
|||
|
|
|||
|
Hard-copy editing mode
|
|||
|
A mode of operation that TECO uses when the user's
|
|||
|
terminal is not a CRT. In this mode, when a
|
|||
|
character is rubbed out using the <DELETE> key,
|
|||
|
the rubbed-out character is re-typed on the
|
|||
|
terminal as a visible indication that this
|
|||
|
character was rubbed out. Opposite of scope
|
|||
|
editing mode. This mode can be entered, even on a
|
|||
|
scope terminal, by turning off the 2's bit of the
|
|||
|
ET flag.
|
|||
|
|
|||
|
Help level flag
|
|||
|
A bit-encoded flag, referenced by the EH command,
|
|||
|
that controls properties of TECO having to do with
|
|||
|
error messages and user assistance.
|
|||
|
|
|||
|
Immediate command
|
|||
|
A special command to TECO that takes immediate
|
|||
|
effect, requiring no <DELIM>s to begin its
|
|||
|
execution.
|
|||
|
|
|||
|
"Immediate action editing characters" are commands
|
|||
|
such as <DELETE> and <CTRL/U>, which perform
|
|||
|
editing of the TECO command string currently being
|
|||
|
typed in. See section 4.1.
|
|||
|
|
|||
|
An "immediate inspection command" is a
|
|||
|
single-character command which can be typed as the
|
|||
|
very first character after TECO's prompting
|
|||
|
asterisk, and which causes the current location
|
|||
|
counter to be moved by one line and the new
|
|||
|
current line to be typed out. Examples are <LF>
|
|||
|
and <BS>. See section 1.6.1.
|
|||
|
|
|||
|
"Immediate action commands" are other commands
|
|||
|
|
|||
|
Standard TECO PAGE 205
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
which may be typed right after TECO's prompting
|
|||
|
asterisk, such as the *q to save the
|
|||
|
previously-typed command in a Q-register or the ^W
|
|||
|
to re-display a scrolling buffer window. See
|
|||
|
section 4.2.
|
|||
|
|
|||
|
"Immediate ESCape sequence" commands are invoked
|
|||
|
by keys which generate escape sequences, such as
|
|||
|
"arrow" or "auxiliary keypad" keys. See section
|
|||
|
4.4. Such commands are usually used to perform
|
|||
|
editing of the TECO command string currently being
|
|||
|
entered into TECO. For example, the commands
|
|||
|
<DELETE> and <CTRL/U> are immediate action
|
|||
|
commands.
|
|||
|
|
|||
|
Iteration A language construct that permits a sequence of
|
|||
|
operations to be re-executed indefinitely or a
|
|||
|
given number of times. In TECO, this is
|
|||
|
accomplished by enclosing the commands in angle
|
|||
|
brackets.
|
|||
|
|
|||
|
Kernel The TECO-11 kernel refers to the TECO-11 module
|
|||
|
that implements all those features of TECO-11 that
|
|||
|
are common to all PDP-11 operating systems.
|
|||
|
Operating system specific features and the
|
|||
|
interface to the operating system is accomplished
|
|||
|
by linking an I/O module tailored for the desired
|
|||
|
operating system with the kernel.
|
|||
|
|
|||
|
Keypad editor A true scope editor that uses special keys on the
|
|||
|
terminal (such as a VT52 or VT100) to control
|
|||
|
editing functions. VTEDIT is an example of a
|
|||
|
keypad editor.
|
|||
|
|
|||
|
Line A portion of text delimited by <LF>, <VT>, <FF>,
|
|||
|
or the beginning or end of the text buffer. The
|
|||
|
final delimiter is considered to be part of the
|
|||
|
line.
|
|||
|
|
|||
|
Line-numbered file
|
|||
|
In TOPS-10, an ASCII file that contains line
|
|||
|
numbers embedded in the start of each line. TECO
|
|||
|
does not require these line numbers, but can
|
|||
|
handle them if they are present. They can also be
|
|||
|
generated or suppressed via the /GENLSN and
|
|||
|
/SUPLSN switches respectively.
|
|||
|
|
|||
|
Line-oriented editor
|
|||
|
An editor that primarily uses line numbers to
|
|||
|
direct editing, and most of whose commands are
|
|||
|
line-oriented. TECO is a character-oriented
|
|||
|
editor, but also has many facilities that work
|
|||
|
with lines.
|
|||
|
|
|||
|
Standard TECO PAGE 206
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
Line-wrap mode
|
|||
|
A standard mode of TECO's window support wherein
|
|||
|
lines that are too long to fit on a single
|
|||
|
physical line of the user's terminal are
|
|||
|
automatically continued on the next line.
|
|||
|
Opposite of truncate mode.
|
|||
|
|
|||
|
Literal type out mode
|
|||
|
A mode that TECO can be put into by setting the
|
|||
|
1's bit in the ET flag, or (for a single character
|
|||
|
on a one-shot basis) by using the :^T command. In
|
|||
|
this mode, any characters typed by a TECO program
|
|||
|
via use of one of the commands T, V, ^A, or :G,
|
|||
|
will be displayed on the user's terminal without
|
|||
|
any modification. When not in this mode, TECO
|
|||
|
will convert characters that normally do not print
|
|||
|
to a form that can be displayed on the user's
|
|||
|
terminal (e.g. <CTRL/X> displays as ^X and
|
|||
|
<ESCAPE> displays as $ or, if a user-designated
|
|||
|
ESCAPE surrogate is in effect, as `). Literal
|
|||
|
type out mode is useful when trying to do
|
|||
|
real-time displays on a CRT terminal. Normal
|
|||
|
(up-arrow) mode is particularly useful to let you
|
|||
|
see what characters are really in your file.
|
|||
|
|
|||
|
Local Q-register
|
|||
|
A Q-register available to only a single macro
|
|||
|
level (including "outside", or at prompt level).
|
|||
|
The local Q-registers for a particular macro level
|
|||
|
are automatically saved and restored by TECO
|
|||
|
around execution of a lower-level macro. Local
|
|||
|
Q-registers are named .A-.Z and .0-.9. See also
|
|||
|
Global Q-Registers, and section 3.3.2.
|
|||
|
|
|||
|
Log file An audit trail that TECO-10 can keep showing all
|
|||
|
the commands that were typed to TECO and/or all
|
|||
|
the type out made by TECO. This is useful for
|
|||
|
reviewing what went wrong with a 'bad' edit. The
|
|||
|
log file is initiated with the EL command (see
|
|||
|
Appendix C).
|
|||
|
|
|||
|
Macro A sequence of TECO commands intended to be loaded
|
|||
|
into a Q-register and executed as a TECO program.
|
|||
|
|
|||
|
Macro level Two commands within the same TECO macro are said
|
|||
|
to be at the same macro level. When one TECO
|
|||
|
macro calls another, the calling macro is said to
|
|||
|
be at the higher macro level, and the called macro
|
|||
|
at the lower macro level.
|
|||
|
|
|||
|
Match control construct
|
|||
|
A command, consisting of certain special
|
|||
|
characters, used within a search string to
|
|||
|
|
|||
|
Standard TECO PAGE 207
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
indicate to TECO that special groups of characters
|
|||
|
are permitted to match at this point.
|
|||
|
|
|||
|
Memory expansion
|
|||
|
TECO's act of acquiring additional storage from
|
|||
|
the operating system when the currently allocated
|
|||
|
storage is insufficient to handle the current TECO
|
|||
|
command. Typically, TECO will attempt to acquire
|
|||
|
this additional memory before it completely runs
|
|||
|
out of memory, so as to allow a 'buffer zone' for
|
|||
|
the user. This allows him to complete a few more
|
|||
|
commands even in the case where TECO is unable to
|
|||
|
get more memory. The informative message "[nK
|
|||
|
Bytes]" or its equivalent is printed on the
|
|||
|
terminal informing the user that memory usage has
|
|||
|
expanded.
|
|||
|
|
|||
|
Mung A recursive acronym for "Mung Until No Good"; an
|
|||
|
act applied by novice TECO users to their source
|
|||
|
files.
|
|||
|
|
|||
|
MUNG command An operating system command used to invoke a
|
|||
|
pre-written TECO program. The most general form
|
|||
|
of this command is "MUNG file,data" where "file"
|
|||
|
is the name of a TECO source program, and "data"
|
|||
|
is data to be passed to that program.
|
|||
|
|
|||
|
No-echo mode A mode of operation in which TECO will not
|
|||
|
automatically echo (display) the character typed
|
|||
|
by the user in response to the ^T command. This
|
|||
|
mode is entered by setting the 8's bit of the ET
|
|||
|
flag. Opposite of echo mode.
|
|||
|
|
|||
|
Page A portion of text delimited by form feeds. The
|
|||
|
form feeds are not considered to be part of the
|
|||
|
page. Sometimes the term 'page' is used to refer
|
|||
|
to all the text currently in the text buffer.
|
|||
|
|
|||
|
Panic Mode A condition that occurs (on small, single-user
|
|||
|
operating systems), when, in the middle of
|
|||
|
outputting during an edit, the output device fills
|
|||
|
up so that the I/O transfer cannot continue. TECO
|
|||
|
recovers gracefully from this condition by
|
|||
|
printing the ?FUL error message and returning
|
|||
|
control to TECO without any loss of data. At this
|
|||
|
point, the user closes the current output file and
|
|||
|
opens another one on another device (with more
|
|||
|
room) and resumes editing. At a subsequent time,
|
|||
|
the two parts of his file can be concatenated back
|
|||
|
together.
|
|||
|
|
|||
|
Standard TECO PAGE 208
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
Pipeline editor
|
|||
|
An editor which only makes sequential edits to a
|
|||
|
file. The file to be edited is read into the text
|
|||
|
buffer one piece at a time. Each piece is edited
|
|||
|
and then written out. Once a piece has been
|
|||
|
written out, further editing to that piece is not
|
|||
|
possible unless the output file is re-opened in a
|
|||
|
later edit as a new file to be edited. TECOs are
|
|||
|
pipeline editors, with the exception of TECO-11 on
|
|||
|
VAX/VMS (which offers the capability to page
|
|||
|
backwards as well as forward).
|
|||
|
|
|||
|
Pointer preservation mode
|
|||
|
A mode of operation in which the text buffer
|
|||
|
pointer will not change after a failing search.
|
|||
|
This mode is controlled by the 16's bit of the ED
|
|||
|
flag.
|
|||
|
|
|||
|
Primary input stream
|
|||
|
A term used by TECO-11 to refer to the main input
|
|||
|
file that TECO is using.
|
|||
|
|
|||
|
Primary output stream
|
|||
|
A term used by TECO-11 to refer to the main output
|
|||
|
file that TECO is using.
|
|||
|
|
|||
|
Prompt level A TECO command is said to be executed from prompt
|
|||
|
level if it was typed in directly in response to
|
|||
|
TECO's prompt, as opposed to being executed from a
|
|||
|
macro.
|
|||
|
|
|||
|
Q-register One of 36 global or 36 local user-accessible
|
|||
|
registers provided by TECO. Each Q-register can
|
|||
|
hold both a number and a string of text. Of
|
|||
|
particular importance is the ability to store TECO
|
|||
|
command strings in Q-registers to be used as
|
|||
|
"macros".
|
|||
|
|
|||
|
Q-register push down list
|
|||
|
A last-in first-out stack available to users for
|
|||
|
saving and restoring the contents of Q-registers.
|
|||
|
|
|||
|
Read-with-no-wait mode
|
|||
|
A mode of operation in which the ^T command will
|
|||
|
not hang until a key is typed on the user's
|
|||
|
terminal. In this mode, if no key has been
|
|||
|
struck, TECO returns a -1 as the value of the ^T
|
|||
|
command. This mode is entered by setting the 32's
|
|||
|
bit of the ET flag.
|
|||
|
|
|||
|
Scrolling A form of TECO operation available on CRT
|
|||
|
terminals capable of supporting split-screen
|
|||
|
operation. The bottom n lines are used for TECO's
|
|||
|
|
|||
|
Standard TECO PAGE 209
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
asterisk prompt and the usual typed command lines;
|
|||
|
the remaining lines above are used for an
|
|||
|
automatically-updated window into the text buffer.
|
|||
|
A valuable training aid: one can experiment with
|
|||
|
TECO commands and immediately observe their
|
|||
|
effects. Not a bad idea for advanced users,
|
|||
|
either. Controlled by the n,7:W command.
|
|||
|
|
|||
|
SEALL mode A mode of window operation in which all characters
|
|||
|
have a distinctive visible display, including
|
|||
|
characters such as <TAB>, <CR>, and <LF>, which
|
|||
|
normally do not print. Controlled by the 3:W flag
|
|||
|
(see section 5.17). Also known as "View all"
|
|||
|
mode.
|
|||
|
|
|||
|
Search verification flag
|
|||
|
A flag, referenced by the ES command, that
|
|||
|
controls the action of TECO subsequent to the
|
|||
|
execution of a command string containg a search
|
|||
|
command. Proper setting of this flag will enable
|
|||
|
the user to verify that the search located the
|
|||
|
correct string, by having the line containing the
|
|||
|
string found displayed on the terminal. See
|
|||
|
section 5.16 for more details.
|
|||
|
|
|||
|
Search mode flag
|
|||
|
A flag, referenced by the ^X command, that
|
|||
|
controls how TECO treats alphabetical characters
|
|||
|
within search strings. This flag is used to put
|
|||
|
TECO into either exact-case mode, or either-case
|
|||
|
mode. If the ^X flag is set to 0, then either
|
|||
|
case matches in searches. If the ^X flag is set
|
|||
|
to 1, then exact case matches are required.
|
|||
|
|
|||
|
Secondary input stream
|
|||
|
A term used by TECO-11 to refer to an auxiliary
|
|||
|
input "channel" that was formed by use of the EP
|
|||
|
command.
|
|||
|
|
|||
|
Secondary output stream
|
|||
|
A term used by TECO-11 to refer to an auxiliary
|
|||
|
output "channel" that was formed by use of the EA
|
|||
|
command. See section 5.1.4 for details.
|
|||
|
|
|||
|
Scope editing mode
|
|||
|
A mode of TECO in which command line scope editing
|
|||
|
(q.v.) algorithms are used. This mode is enabled
|
|||
|
by setting the 2's bit of the ET flag. It is
|
|||
|
usually automatically enabled by TECO if the
|
|||
|
operating system can detect that the user has
|
|||
|
invoked TECO from a scope terminal. Opposite of
|
|||
|
hard-copy editing mode.
|
|||
|
|
|||
|
Standard TECO PAGE 210
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
Split Q-registers
|
|||
|
The feature of TECO that permits storing of both a
|
|||
|
number and a string within a Q-register. Each
|
|||
|
Q-register can be considered to consist of two
|
|||
|
compartments.
|
|||
|
|
|||
|
String build construct
|
|||
|
A command, consisting of special characters, used
|
|||
|
within a text argument to build up the contents of
|
|||
|
the text argument from other components.
|
|||
|
|
|||
|
SUPER TECO mode
|
|||
|
A mode of TECO-8 wherein TECO will read past the
|
|||
|
end-of-file mark (CTRL/Z) of a sequential ASCII
|
|||
|
file. This mode is enabled by using the /S switch
|
|||
|
on an ER or EB command and is terminated when an
|
|||
|
ER or EB command is issued with no /S switch.
|
|||
|
This mode is useful for scanning through mass
|
|||
|
storage devices in an attempt to recover data from
|
|||
|
files that had previously been deleted.
|
|||
|
|
|||
|
Switch A construct of the form /SWITCH used within a
|
|||
|
command that takes a filespecification, to modify
|
|||
|
the action of the command or attributes of the
|
|||
|
file specified. Also known as a qualifier.
|
|||
|
|
|||
|
Tag A label specified within exclamation marks to mark
|
|||
|
a point within a TECO program. Control can be
|
|||
|
transferred to this point by the use of a GOTO
|
|||
|
(Otag`) command.
|
|||
|
|
|||
|
TECO Text Editor and COrrector program.
|
|||
|
|
|||
|
TECO.INI A file containing TECO commands that is used as a
|
|||
|
user's private initialization file. When TECO
|
|||
|
starts up, it looks for such a file in the user's
|
|||
|
area, and if it finds one, the TECO commands in
|
|||
|
this file are executed before editing commences.
|
|||
|
|
|||
|
TECO.TEC A TECO macro used by many operating systems to
|
|||
|
parse the user's edit-class commands.
|
|||
|
|
|||
|
TECO I/O mode A mode of I/O operation under the RSTS/E and
|
|||
|
RSX-11 operating systems, in which the system
|
|||
|
buffers most characters and returns control to the
|
|||
|
caller (usually TECO) only when interesting
|
|||
|
characters (such as <DELETE>, <DELIM>, etc.) are
|
|||
|
typed.
|
|||
|
|
|||
|
TECO's prompt refers to the asterisk (*) that TECO prints to
|
|||
|
indicate that it is ready to accept commands.
|
|||
|
|
|||
|
Standard TECO PAGE 211
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
TECO SIG A DECUS Special Interest Group, consisting of
|
|||
|
users who are dedicated to the spread of,
|
|||
|
improvement of, and standardization of TECO.
|
|||
|
|
|||
|
Terminal characteristics flag
|
|||
|
A bit-encoded flag, referenced via the ET command,
|
|||
|
that contains information about the user's console
|
|||
|
terminal and specifies in what manner TECO should
|
|||
|
support it.
|
|||
|
|
|||
|
Text buffer
|
|||
|
The main buffer used by TECO to hold the text to
|
|||
|
be edited.
|
|||
|
|
|||
|
Text buffer pointer
|
|||
|
A pointer that marks the position within the text
|
|||
|
buffer where TECO is currently 'at'. This pointer
|
|||
|
always points to positions between characters; it
|
|||
|
never points at a character. The current
|
|||
|
character is considred to be the character
|
|||
|
immediately to the right of the current position
|
|||
|
of the text buffer pointer.
|
|||
|
|
|||
|
Then-clause The set of commands within a conditional that are
|
|||
|
executed if the condition is satisfied. In TECO,
|
|||
|
these commands immediately follow the "X at the
|
|||
|
start of the conditional. They are terminated by
|
|||
|
a | or ' character.
|
|||
|
|
|||
|
Tracing The act of watching the command-by-command
|
|||
|
execution of a TECO program. This is accomplished
|
|||
|
by putting TECO into trace mode, via use of the ?
|
|||
|
command.
|
|||
|
|
|||
|
Trace mode A mode of TECO wherein each command that is
|
|||
|
executed by TECO is also displayed on the user's
|
|||
|
terminal as it is being executed. This mode is
|
|||
|
useful for debugging complicated TECO programs.
|
|||
|
TECO is toggled in and out of this mode via use of
|
|||
|
the ? command. See section 5.18.4 for more
|
|||
|
details.
|
|||
|
|
|||
|
Truncate mode A mode of TECO's window support wherein lines that
|
|||
|
are too long to fit on a single physical line of
|
|||
|
the user's terminal are truncated when the right
|
|||
|
margin of the scope is encountered. This mode is
|
|||
|
entered by setting the 256's bit in the ET flag.
|
|||
|
Opposite of line-wrap mode.
|
|||
|
|
|||
|
Type-out-time command
|
|||
|
A special command that makes sense only while TECO
|
|||
|
is typing out text on the terminal. These
|
|||
|
commands are <CTRL/S>, <CTRL/Q>, and <CTRL/O> and
|
|||
|
|
|||
|
Standard TECO PAGE 212
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
affect the type out.
|
|||
|
|
|||
|
Up-arrow mode A standard mode of operation wherein upon type
|
|||
|
out, TECO will display control characters by
|
|||
|
typing the visible two-character sequence ^X to
|
|||
|
represent the control character <CTRL/X>. On many
|
|||
|
older terminals, the caret character (^), whose
|
|||
|
octal ASCII code is 136, prints as an up-arrow.
|
|||
|
Some control characters are not printed in
|
|||
|
up-arrow mode, notably <TAB>, <LF>, <VT>, <FF>,
|
|||
|
and <CR>.
|
|||
|
|
|||
|
Upper/lower case flag
|
|||
|
A flag, referenced by the EU command, that
|
|||
|
specifies whether or not case flagging is to
|
|||
|
occur. If set to -1, no case flagging occurs. If
|
|||
|
set to 0, lower case characters are flagged on
|
|||
|
type out. If set to +1, upper case characters are
|
|||
|
flagged on type out.
|
|||
|
|
|||
|
View all mode A mode of window operation in which all characters
|
|||
|
have a distinctive visible display, including
|
|||
|
characters such as <TAB>, <CR>, and <LF>, which
|
|||
|
normally do not print. Controlled by the 3:W flag
|
|||
|
(see section 5.17). Also known as SEALL mode.
|
|||
|
|
|||
|
War and Peace mode
|
|||
|
A mode of operation in which TECO outputs a large
|
|||
|
informative paragraph of information automatically
|
|||
|
upon encountering an error in a user's program.
|
|||
|
This paragraph of information describes the error
|
|||
|
in painstaking detail and tells the user how to
|
|||
|
recover. This mode is entered by setting the help
|
|||
|
level to 3. This mode is particularly useful to
|
|||
|
Novices and particularly obnoxious to experts.
|
|||
|
|
|||
|
Window The portion of the text buffer that is currently
|
|||
|
being displayed on the user's terminal or
|
|||
|
auxiliary display device.
|
|||
|
|
|||
|
Window support
|
|||
|
Assembly language code, built into TECO, that
|
|||
|
maintains a window into the text buffer on the
|
|||
|
user's terminal or auxiliary display device.
|
|||
|
|
|||
|
Yank protection
|
|||
|
A feature of TECO wherein any Y, _, or F_ command
|
|||
|
that will potentially destroy valid data is
|
|||
|
aborted. This mode is normally enabled and will
|
|||
|
cause any of the aforementioned commands to abort
|
|||
|
with the ?YCA error message if there is text in
|
|||
|
the text buffer and an output file is open. This
|
|||
|
feature can be disabled by turning off the 2's bit
|
|||
|
|
|||
|
Standard TECO PAGE 213
|
|||
|
Glossary
|
|||
|
|
|||
|
|
|||
|
in the ED flag.
|
|||
|
|
|||
|
Standard TECO PAGE 214
|
|||
|
Index
|
|||
|
|
|||
|
|
|||
|
INDEX TO TECO COMMANDS
|
|||
|
AND SPECIAL CHARACTERS
|
|||
|
|
|||
|
|
|||
|
NULL Discarded on input; Ignored in comman . . 119
|
|||
|
^A Output message to terminal . . . . . . . . 64
|
|||
|
^B Current date . . . . . . . . . . . . . . . 90
|
|||
|
^C Stop execution . . . . . . . . . . . . . . 40, 53, 99
|
|||
|
^D Set radix to decimal . . . . . . . . . . . 87
|
|||
|
^E Form Feed flag . . . . . . . . . . . . . . 90
|
|||
|
^E<n> (Match char) Match ASCII code n . . . . . 79
|
|||
|
^EA (Match char) Match alphabetics . . . . . . 78
|
|||
|
^EB (Match char) Match separator char . . . . 78
|
|||
|
^EC (Match char) Match Symbol Constituent . . 78
|
|||
|
^ED (Match char) Match numerics . . . . . . . 78
|
|||
|
^EGq (Match char) Match contents of Q-reg . . 78
|
|||
|
^EL (Match char) Match line terminators . . . 78
|
|||
|
^EMx (Match char) Match any number of x . . . . 78
|
|||
|
^EQq (String char) Use contents of Q-reg q . . 77
|
|||
|
^ER (Match char) Match alphanumerics . . . . . 78
|
|||
|
^ES (Match char) Match non-null space/tab . . 78
|
|||
|
^EUq (String char) Use ASCII code in Q-reg . . 77
|
|||
|
^EV (Match char) Match lower case alphabe . . 78
|
|||
|
^EW (Match char) Match upper case alphabe . . 78
|
|||
|
^EX (Match char) Match any character . . . . . 79
|
|||
|
^E[] (Match char) Match one of list . . . . . . 79
|
|||
|
^F Contents of console switch register . . . 90
|
|||
|
n^F Return terminal number of job n . . . . . 91
|
|||
|
^G^G Kill command string . . . . . . . . . . . 40
|
|||
|
^G<sp> Retype current command line . . . . . . . 40
|
|||
|
^G* Retype current command input . . . . . . . 40
|
|||
|
^H Current time of day . . . . . . . . . . . 91
|
|||
|
BS Back up and type one line . . . . . . . . 17, 41
|
|||
|
TAB Insert tab and text . . . . . . . . . . . 69
|
|||
|
LF Line terminator; Ignored in commands . . . 9, 34, 117
|
|||
|
LF Advance and type one line . . . . . . . . 17, 41
|
|||
|
VT Line terminator; Not a TECO command . . . 34
|
|||
|
FF Page terminator; Output Form Feed . . . . 9, 34
|
|||
|
CR End input line; Ignored in commands . . . 9, 40, 117
|
|||
|
^N End of file flag . . . . . . . . . . . . . 91
|
|||
|
^Nx (Match char) Match all but x . . . . . . . 77
|
|||
|
^O Set radix to octal . . . . . . . . . . . . 87
|
|||
|
^O Kill terminal output . . . . . . . . . . . 65
|
|||
|
^P Not a TECO command . . . . . . . . . . . . 214
|
|||
|
^Q Resume terminal output . . . . . . . . . . 65
|
|||
|
^Q Convert line arg into character arg . . . 146, 150
|
|||
|
^Qx (String char) Use x literally . . . . . . 76
|
|||
|
^R Value of current radix . . . . . . . . . . 87
|
|||
|
n^R Set radix to n . . . . . . . . . . . . . . 87
|
|||
|
^Rx (String char) Use x literally . . . . . . 76
|
|||
|
^S -(length) of last referenced string . . . 91
|
|||
|
^S Suspend terminal output . . . . . . . . . 65
|
|||
|
^S Save last command string . . . . . . . . . 149
|
|||
|
|
|||
|
Standard TECO PAGE 215
|
|||
|
Index
|
|||
|
|
|||
|
|
|||
|
^S (Match char) Match separator char . . . . 77
|
|||
|
^T ASCII value of next character typed . . . 91
|
|||
|
^T Read and decode next keystroke typed . . . 91
|
|||
|
n^T Type ASCII character of value n . . . . . 63
|
|||
|
n:^T Output binary byte of value n . . . . . . . 63
|
|||
|
^U Kill command line . . . . . . . . . . . . 40
|
|||
|
^Uq Put string into Q-register q . . . . . . . 80
|
|||
|
:^Uq Append string to Q-register q . . . . . . 81
|
|||
|
n^Uq Put ASCII char "n" into Q-register q . . . 81
|
|||
|
n:^Uq Append ASCII char "n" to Q-register q . . 81
|
|||
|
^V Enable lower case conversion . . . . . . . 121
|
|||
|
^Vx (String char) Force x to lower case . . . 76
|
|||
|
^W Enable upper case conversion . . . . . . . 121
|
|||
|
^W Refresh scrolled display . . . . . . . . . 41
|
|||
|
^Wx (String char) Force x to upper case . . . 76
|
|||
|
^X Search mode flag . . . . . . . . . . . . . 112
|
|||
|
^X (Match char) Match any character . . . . . 77
|
|||
|
^Y Equivalent to ".+^S,." . . . . . . . . . . 92
|
|||
|
^Z Size of text in all Q-registers . . . . . 92
|
|||
|
^Z^Z^Z Immediate exit from TECO . . . . . . . . . 40
|
|||
|
ESC String and command terminator . . . . . . 7, 39, 99
|
|||
|
ESC String and command terminator . . . . . . 119
|
|||
|
^[ String and command terminator . . . . . . 119
|
|||
|
^\ Not a TECO command . . . . . . . . . . . . 214
|
|||
|
^] Not a TECO command . . . . . . . . . . . . 214
|
|||
|
^^x ASCII value of x . . . . . . . . . . . . . 92
|
|||
|
^_ Ones complement (logical NOT) . . . . . . 86
|
|||
|
SP Ignored in commands . . . . . . . . . . . 117
|
|||
|
! Define label . . . . . . . . . . . . . . . 95
|
|||
|
" Start conditional . . . . . . . . . . . . 101
|
|||
|
n"< Test for less than zero . . . . . . . . . 102
|
|||
|
n"= Test for equal to zero . . . . . . . . . . 102
|
|||
|
n"> Test for greater than zero . . . . . . . . 102
|
|||
|
n"A Test for alphabetic . . . . . . . . . . . 101
|
|||
|
n"C Test for symbol constituent . . . . . . . 101
|
|||
|
n"D Test for numeric . . . . . . . . . . . . . 102
|
|||
|
n"E Test for equal to zero . . . . . . . . . . 102
|
|||
|
n"F Test for false . . . . . . . . . . . . . . 102
|
|||
|
n"G Test for greater than zero . . . . . . . . 102
|
|||
|
n"L Test for less than zero . . . . . . . . . 102
|
|||
|
n"N Test for not equal to zero . . . . . . . . 102
|
|||
|
n"R Test for alphanumeric . . . . . . . . . . 102
|
|||
|
n"S Test for successful . . . . . . . . . . . 102
|
|||
|
n"T Test for true . . . . . . . . . . . . . . 102
|
|||
|
n"U Test for unsuccessful . . . . . . . . . . 102
|
|||
|
n"V Test for lower case . . . . . . . . . . . 102
|
|||
|
n"W Test for upper case . . . . . . . . . . . 102
|
|||
|
# Logical OR . . . . . . . . . . . . . . . . 86
|
|||
|
$ Separate TECO commands . . . . . . . . . . 120
|
|||
|
$ ESCape (no surrogate) typeout . . . . . . 3
|
|||
|
n%q Add n to Q-register q and return resu . . 80
|
|||
|
& Logical AND . . . . . . . . . . . . . . . 86
|
|||
|
' End conditional . . . . . . . . . . . . . 101
|
|||
|
|
|||
|
Standard TECO PAGE 216
|
|||
|
Index
|
|||
|
|
|||
|
|
|||
|
( Expression grouping . . . . . . . . . . . 86
|
|||
|
) Expression grouping . . . . . . . . . . . 86
|
|||
|
* Multiplication . . . . . . . . . . . . . . 86
|
|||
|
*q Save last command in Q-register q . . . . 42
|
|||
|
+ Addition . . . . . . . . . . . . . . . . . 86
|
|||
|
, Argument separator . . . . . . . . . . . . 86
|
|||
|
- Subtraction or negation . . . . . . . . . 86
|
|||
|
. Current pointer position . . . . . . . . . 89
|
|||
|
/ Division . . . . . . . . . . . . . . . . . 86
|
|||
|
/ Type detailed explanation of error . . . . 41
|
|||
|
0-9 Digit . . . . . . . . . . . . . . . . . . 214
|
|||
|
: Modify next command . . . . . . . . . . . 33
|
|||
|
; Exit iteration on search failure . . . . . 97
|
|||
|
n; Exit iteration if n is positive . . . . . 97
|
|||
|
:; Exit iteration on search success . . . . . 97
|
|||
|
n:; Exit iteration if n is negative . . . . . 97
|
|||
|
n< Iterate n times . . . . . . . . . . . . . 94
|
|||
|
= Type in decimal . . . . . . . . . . . . . 87
|
|||
|
== Type in octal . . . . . . . . . . . . . . 87
|
|||
|
=== Type in hexadecimal . . . . . . . . . . . 87
|
|||
|
:= Type in decimal, no carriage return . . . 87
|
|||
|
:== Type in octal, no carriage return . . . . 87
|
|||
|
:=== Type in hexadecimal, no carriage retu . . 87
|
|||
|
> End iteration . . . . . . . . . . . . . . 94
|
|||
|
? Toggle trace mode . . . . . . . . . . . . 119
|
|||
|
? Type out command string in error . . . . . 41
|
|||
|
@ Modify next text argument . . . . . . . . 33
|
|||
|
A Append to buffer . . . . . . . . . . . . . 58
|
|||
|
nA ASCII value of char in buffer . . . . . . 89
|
|||
|
n:A Append n lines to buffer . . . . . . . . . 58
|
|||
|
B 0 - beginning of buffer . . . . . . . . . 89
|
|||
|
nC Advance n characters . . . . . . . . . . . 61
|
|||
|
nD Delete n characters . . . . . . . . . . . 66
|
|||
|
m,nD Delete between m and n . . . . . . . . . . 66
|
|||
|
DELIM Character typed as surrogate for ESCa . . 2, 7, 30, 39, 107, 111
|
|||
|
DELIM Advance and type one line . . . . . . . . 17, 41
|
|||
|
E%q Write Q-register q into a file . . . . . . 57
|
|||
|
EA Select secondary output stream . . . . . . 54
|
|||
|
EB Open input and output . . . . . . . . . . 49
|
|||
|
EC Close out (copy in to out and close) . . . 52
|
|||
|
ED Edit mode flag . . . . . . . . . . . . . . 105
|
|||
|
EE ESCape surrogate character . . . . . . . . 107
|
|||
|
EF Close output file . . . . . . . . . . . . 52
|
|||
|
EG Close out and exit with command . . . . . 52
|
|||
|
:EG Execute operating system function . . . . 52, 148, 149
|
|||
|
EH Help level flag . . . . . . . . . . . . . 107
|
|||
|
EI Open indirect command file . . . . . . . . 54
|
|||
|
m,nEJ Set environment characteristics . . . . . 104
|
|||
|
nEJ Return environment characteristics . . . . 103
|
|||
|
EK Kill output file . . . . . . . . . . . . . 53
|
|||
|
EL Open log file . . . . . . . . . . . . . . 53
|
|||
|
nEM Position magtape . . . . . . . . . . . . . 150
|
|||
|
EN Wildcard lookup . . . . . . . . . . . . . 56
|
|||
|
|
|||
|
Standard TECO PAGE 217
|
|||
|
Index
|
|||
|
|
|||
|
|
|||
|
EO Version of TECO . . . . . . . . . . . . . 93
|
|||
|
nEO Set TECO to function as version n . . . . 108
|
|||
|
EP Select secondary input stream . . . . . . 54
|
|||
|
EQq Read file into Q-register q . . . . . . . 56
|
|||
|
ER Open input file . . . . . . . . . . . . . 49, 54
|
|||
|
ES Search verification flag . . . . . . . . . 108
|
|||
|
ET Type out control flag . . . . . . . . . . 109
|
|||
|
EU Case flagging flag . . . . . . . . . . . . 112
|
|||
|
EV Edit verify flag . . . . . . . . . . . . . 112
|
|||
|
EW Open output file . . . . . . . . . . . . . 50, 54
|
|||
|
EX Close out and exit . . . . . . . . . . . . 53
|
|||
|
EY Read without yank protection . . . . . . . 60
|
|||
|
EZ Zero output tape . . . . . . . . . . . . . 53
|
|||
|
nE_ Search without yank protection . . . . . . 72
|
|||
|
F' Flow to end of conditional . . . . . . . . 98
|
|||
|
F< Flow to start of iteration . . . . . . . . 98
|
|||
|
F> Flow to end of iteration . . . . . . . . . 98
|
|||
|
F| Flow to ELSE part of conditional . . . . . 99
|
|||
|
m,nFB Search between locations m and n . . . . . 73
|
|||
|
nFB Search, bounded by n lines . . . . . . . . 73
|
|||
|
m,nFC Search and replace between m and n . . . . 74
|
|||
|
nFC Search and replace over n lines . . . . . 74
|
|||
|
nFD Search and delete string . . . . . . . . . 66, 74
|
|||
|
nFK Search and delete intervening text . . . . 67, 74
|
|||
|
nFN Global string replace . . . . . . . . . . 73
|
|||
|
FR Replace last string . . . . . . . . . . . 69
|
|||
|
nFS Local string replace . . . . . . . . . . . 73
|
|||
|
nF_ Destructive search and replace . . . . . . 74
|
|||
|
Gq Get string from Q-register q into buf . . 83
|
|||
|
G* Get last filespec string into buffer . . . 145
|
|||
|
:Gq Type Q-register q on terminal . . . . . . 83
|
|||
|
G_ Get last search string into buffer . . . . 146
|
|||
|
H Equivalent to "B,Z" . . . . . . . . . . . 89
|
|||
|
I Insert text . . . . . . . . . . . . . . . 68
|
|||
|
nI Insert ASCII character "n" . . . . . . . . 68
|
|||
|
nJ Move pointer to "n" . . . . . . . . . . . 61
|
|||
|
nK Kill n lines . . . . . . . . . . . . . . . 66
|
|||
|
m,nK Delete between m and n . . . . . . . . . . 67
|
|||
|
nL Advance n lines . . . . . . . . . . . . . 62
|
|||
|
Mq Execute string in Q-register q . . . . . . 84, 90
|
|||
|
nN Global search . . . . . . . . . . . . . . 72
|
|||
|
O Go to label . . . . . . . . . . . . . . . 95
|
|||
|
nO Computed goto . . . . . . . . . . . . . . 96
|
|||
|
nP Advance or back up n pages . . . . . . . . 59
|
|||
|
m,nP Write out chars m to n . . . . . . . . . . 59
|
|||
|
nPW Write buffer n times . . . . . . . . . . . 59
|
|||
|
m,nPW Write out chars m to n . . . . . . . . . . 59
|
|||
|
Qq Number in Q-register q . . . . . . . . . . 83, 90
|
|||
|
:Qq Size of text in Q-register q . . . . . . . 83, 90
|
|||
|
nR Back up n characters . . . . . . . . . . . 62
|
|||
|
nS Local search . . . . . . . . . . . . . . . 71
|
|||
|
m,nS Search for nth occurrence within m ch . . 145
|
|||
|
::S Compare string . . . . . . . . . . . . . . 73
|
|||
|
|
|||
|
Standard TECO PAGE 218
|
|||
|
Index
|
|||
|
|
|||
|
|
|||
|
SEEALL "View All" characters display mode . . . . 29
|
|||
|
nT Type n lines . . . . . . . . . . . . . . . 63
|
|||
|
m,nT Type from m to n . . . . . . . . . . . . . 63
|
|||
|
nUq Put number n into Q-register q . . . . . . 80
|
|||
|
nV Type n current lines . . . . . . . . . . . 63
|
|||
|
m,nV Type m before & n after current line . . . 64
|
|||
|
W Scope "WATCH" . . . . . . . . . . . . . . 113
|
|||
|
n:W Return scope characteristics . . . . . . . 114, 146
|
|||
|
m,n:W Set scope characteristics . . . . . . . . 115
|
|||
|
nXq Put n lines into Q-register q . . . . . . 81
|
|||
|
m,nXq Put characters m to n into Q-register . . 81
|
|||
|
n:Xq Append n lines to Q-register q . . . . . . 82
|
|||
|
m,n:Xq Append characters m to n into Q-regis . . 82
|
|||
|
Y Read into buffer . . . . . . . . . . . . . 59
|
|||
|
Z End of buffer value . . . . . . . . . . . 89
|
|||
|
[q Q-register push . . . . . . . . . . . . . 83
|
|||
|
\ Value of digit string in buffer . . . . . 88, 90
|
|||
|
n\ Convert n to digits in buffer . . . . . . 88
|
|||
|
]q Q-register pop . . . . . . . . . . . . . . 82
|
|||
|
n_ Global search without output . . . . . . . 72
|
|||
|
` ESCape surrogate typeout . . . . . . . . . 3, 30, 39, 107, 111
|
|||
|
a-z Treated the same as upper case A-Z . . . . 214
|
|||
|
{ Not a TECO command . . . . . . . . . . . . 214
|
|||
|
| Start ELSE part of conditional . . . . . . 101
|
|||
|
} Not a TECO command . . . . . . . . . . . . 214
|
|||
|
~ Not a TECO command . . . . . . . . . . . . 214
|
|||
|
DEL Delete last character typed in . . . . . . 39
|
|||
|
|