Trailing-Edge
-
PDP-10 Archives
-
bb-m403a-bk
-
ddt11.doc
There are 19 other files named ddt11.doc in the archive. Click here to see a list.
Title: DDT11 (preliminary)
Date: 19-Oct-80
File: DDT11.RNO
Edition: 1
PRELIMINARY
Copyright 1975, 1976, 1977, 1978, Digital Equipment Corp., Maynard, Mass.
This document reflects the software as of version 5(41)
This software is furnished to the purchaser under a license for use on a
single computer system and can be copied (with inclusion of DEC's
copyright notice) only for use in such system, except as may otherwise
be provided in writing by DEC.
The information in this document is subject to change without notice and
should not be construed as a commitment by Digital Equipment
Corporation.
Actual distribution of the software described in this specification will
be subject to terms and conditions to be announced at some future date
by Digital Equipment Corporation.
DEC assumes no responsibility for the use or reliability of its software
on equipment which is not supplied by DEC.
DDT11 (preliminary) Page 2
1.0 INTRODUCTION
DDT11 is a catagory C software product. DDT11 is a tool which was
written as part of the DC76, DAS78, and DAS85 development. Because
it may be of general interest it might be distributed as
unsupported software. The command syntax for DDT11 mimics PDP-10
DDT.
DDT11 can be used to examine and deposit PDP11 core using the
CAL11. UUO or CAL78. UUO (requires POKE privileges). DDT11 can
also be used to examine a running DC75NP or DN8x using the NODE.
UUO (requires POKE privileges). DDT11 may also be used to read
dumps produced by BOOT11, NETLDR, DTELDR, or DNLOAD.
DDT11 can run on TOPS-10, TOPS-20, or standalone on a 2020. When
running on a 2020, standalone, it will control paging, and support
access to a UBA. In this mode, DDT11 can run diagnostics on the
-11 devices.
DDT11 can be used to patch binary files for later use.
DDT11 can be used to simulate the execution of PDP11 programs.
DDT11 commands may be either from a terminal, or may be from a
command file.
Output from DDT11 will usually be printed on the users tty but may
be directed to a line printer or disk file.
DDT11 (preliminary) Page 3
2.0 INITIAL DIALOGUE
When DDT11 begins execution it will ask what to look at by typing:
INPUT:
At this point a file name and/or switches may be entered to tell
DDT11 what to read. Legal switches include:
/11 Same as /PDP11
/8 Same as /PDP8
/BINARY Read file as binary.
/CORE:#K Allocate specified amount of core to read dump
or binary file.
/DTELDR Read file as a dump created by the DTELDR
program.
/DUMP Read file as a dump (e.g. produced by BOOT11 or
NETLDR).
/FE:#n Used to request using the FE device to look at a
front end.
/FESYMB Tells DDT11 to load symbols from a RSX20F map
file.
/GO Indicate starting right away with the last
command used.
/LA36 Defines user terminal to be a LA36. This
affects echo of rubouts.
/LINE:# Used with /NODE to specify which DDCMP line to
send maintanance messages on.
/LOCK Used to lock DDT11 in core (TOPS-10). Required
for 6.03a systems.
/LSD Same as /DUMP
/MERGE Used to read a dump, and overlay the old dump,
adding the two together.
/NODE:# Used to request use of NODE. UUO to examine
PDP11.
/PATCH Used to enable patching.
/PDP11 Use only PDP11 symbols.
/PDP8 Use only PDP8 symbols.
/PORT:# Used to request use of CAL11. or CAL78. UUO to
examine PDP11.
/READST Tells DDT11 to load symbols from an internal
format STB file.
/RELOCA:symbol Tells DDT11 to add an offset to symbols
loaded from a RSX20F dump.
/SYMBOL Tells DDT11 to load symbols from listing file.
/SYMBOL:# Tells DDT11 to load symbols from listing file
starting at disk block #.
/UBA:# Tells DDT11 to use the correct UBA when running
standalone on a KS10.
/VT52 Defines user terminal to be a VT52. This
affects echo of rubouts.
/WRITES Tells DDT11 to write an internal format STB
file.
DDT11 (preliminary) Page 4
Example 1) to add to the DDT11 symbol table.
DSKB:DAS78.CRF[10,11,FOO]/SYMBOL
Example 2) to read a dump made by BOOT11 or NETLDR.
XPN:SER013.LSD
Example 3) to read a binary file and enable for patching.
SYS:DAS78.BIN/PATCH
Example 4) to examine (with CAL11. UUO or CAL78. UUO) memory in a
running DC76, DC75NP, DAS78, or DAS87.
/PORT:3
Example 5) to examine and deposit(with NODE. UUO) a running DAS82,
or DAS87.
/NODE:FRED/PATCH
Example 6) to examine and deposit(with BOOTSTRAP msgs) a running
DAS82 running the downline load rom. In this example the node
being booted is connected to the 3rd line of node fred.
/NODE:FRED/LINE:2/PATCH
Example 7) to load symbols from a RSX20F map file.
RSX20F.MAP/FESYMB
Example 8) to examine a running RSX20F front end on a TOPS-20
system.
/FE:0
Example 9) to run standalone on a 2020 and run devices on UBA 0.
/UBA:0/GO
DDT11 (preliminary) Page 5
3.0 TYPEIN
When <escape>, octal code 33, is typed it will be echoed as "$".
Throughout this manual when a "$" appears it means <escape>, unless
otherwise noted.
Lower case characters will be treated as upper case characters
except in text input.
Numbers which are typed in to DDT11 are taken as octal unless they
are terminated with a "." or contain an "8" or "9" digit.
3.1 OPENING A LOCATION
To open a location an expression representing the address is typed
followed by a "/", "[", or "\". If the expression was terminated
with a "/" the location will be opened and displayed in the current
output mode. If the expression was terminated with a "[" the
location will be opened and displayed in numeric mode.
If a semicolon, ";", is typed the current location will be
displayed in the current output mode.
If an underscore, "_", is typed the current location will be
displayed as an instruction.
If a linefeed is typed the location counter is increased by the
size of the current display, the new location is opened and its
contents are displayed in the current output mode.
If an uparrow, "^", is typed the location counter is decreased by
the size of the new display, the new location is opened and
displayed in the current mode. In instruction mode, when "^" is
typed the location counter is backed up 1, 2, or 3 words. A
backspace, "^H", is treated like an uparrow.
3.2 EXPRESSION OPERATORS
The operators which are implemented are:
<blank> generally equivalent to +
+ addition
- subtraction
* multiplication
' division
! inclusive or
DDT11 (preliminary) Page 6
& and
^X (control X) exclusive or
The operator precedence is:
logical operations (from left to right)
multiplication and division (from left to right)
addition and subtraction (from left to right)
3.3 TEXT TYPEIN.
To enter ASCII text type a double quote (") followed by a character
to serve as a delimiter, then type a string of characters and
repeat the delimiter. Characters are stored as 7bits plus a zero
parity bit. The string will be stored starting at the current
address until all characters have been stored. If an attempt is
made to deposit a odd length string with /PORT initialization a
final zero byte will be added. For example:
"/ABC/
3.4 INSTRUCTION TYPEIN.
Instructions may be typed in.
3.5 MULTIPLE WORD TYPEIN.
Multiple words may be typed in by separating the words with commas.
e.g:
100/ 1 1,2,3<cr>
3.6 $<CR>, $<LF>, $^
Typing $<cr> or $<lf> or $^ will perform the usual function of a
<cr> or <lf> or ^ and then reset the address to a previous address.
e.g:
3000/ JMP 3104 <tab>
3104/ MOV #3,R5 MOV #5,R5$<LF>
3004/ JSR PC,5272 $<CR>
3104/ MOV #5,R5
3.7 DELETING TYPEIN
Until a command has been completely typed in, characters can be
deleted from it by typing rubout. If the terminal was declared to
DDT11 (preliminary) Page 7
be an LA36, the rubout will echo as a backslash, "\", followed by
the character which was rubbed out. If the terminal was declared
to be a VT52, the rubout will echo by deleting the rubbed out
character from the screen.
Until a command has been completely typed in, expressions may be
deleted from it by typing a control W, "^W".
Until complete commands have been typed in, the command may be
wiped out by typing a control U, "^U". The control U will echo as
"xxx ".
DDT11 (preliminary) Page 8
4.0 TYPEOUT MODES
Typeout from DDT11 may be as instructions, numbers, bytes, ASCII
text, or addresses. As in PDP-10 DDT there is both a temporary and
permant typeout mode. The initial output mode is instruction
format.
In the following descriptions where # is used, # is the number of
words or bytes to be displayed each time. # is either an
expression surrounded with parentheses, or # is an octal or decimal
number.
$#A Sets address format typeout. If # is not given 1
will be assumed.
$#B Sets byte mode typeout. If # is not given 2 will
be assumed.
$#C Causes output to be numeric format of # words. If
# is not given 1 will be assumed.
$#I Causes output to be # EBCDIC bytes. If # is not
given 2 will be assumed.
$#R Sets current numeric radix (16. gives
hexadecimal)
$S Sets instruction format typeout. Each output will
represent 16, 32 or 48 bits depending on the
instruction type.
$#T Sets text format output. Data is intepreted as
ASCII characters. Each typeout will be #
characters long.
e.g.:
200$S/ MOV #5707,PC
200$3C/ 12707 5707 12707
710$(4*4)T/ <12>PARITY ERROR<15><12><0>
$$4B
DDT11 (preliminary) Page 9
5.0 SYMBOLS
DDT11 always has the standard PDP11 instructions defined as
symbols. The current location pointer may be refered to with the
symbol ".". The last word used by DDT11 for output, or input to
DDT11 may be referenced with the symbol $Q. e.g.:
2002/ MOV 6(R5),@(R5)+ $Q=6
2020/ BR 1466 $Q=622
5.1 DEFINING SYMBOLS
A symbol with a value equal to the current location counter may be
defined by typing the new symbol and terminationg it with a ":".
e.g.:
5570/ RESET START: The user may also directly assign a
value to a symbol by typing the value, a left angle bracket (<) and
the symbol, terminated by a colon. e.g.:
105<Q:
5.2 READING SYMBOLS FROM MACDLX LISTINGS
Symbols may be read from a MACDLX cref listing. A typical command
sequence would be:
.R MACDLX
*DSK:DAS78,DAS78.LST/CRF=DSK:S.P11,DAS78.P11,CHK11.P11
*^C
.R DDT11
INPUT: DAS78/SYMBOL
^Z
.SAVE D78
Symbols defined in the source with colons will be available for
typeout from DDT11. Symbols defined in the source with equals
signs will be available for typein but will be suppressed on DDT11
output.
5.2 READING SYMBOLS FROM A RSX20F MAP FILE
Symbols may be read from a RSX20F map file. A typical command
sequence might be:
.R DDT11
INPUT: RSX20F.MAP/FESYM
^Z
SAVE VB1234
DDT11 (preliminary) Page 10
5.3 $K COMMAND
The last symbol typed by DDT11, or the last symbol typed by a user,
may be made unavailable for typeout from DDT11 by typeing $K.
Symbols may be removed from the DDT11 symbol table by typeing $$K.
e.g.:
TAG$$K
1$/ ADD #2,(SP) $K
5.4 ? COMMAND
When entering a symbol, if a "?" is typed DDT11 will search its
symbol table for partial matches. A partial match is any symbol
which begins the same as the partially typed in symbol. If any
partial matches are discovered, DDT11 will type:
following are partial matches
DDT11 will then type all of the partial matches, and their values
in the current output radix. If the symbols are suppressed, the
value will be followed with a "spd". If no symbols match the
partially typed symbol, DDT11 will respond:
no partial matches for symbol
After displaying the partial matches, DDT11 will retype the input
and the user may continue typing in his symbol.
5.5 CONTROL F COMMAND
If control F is typed while typing in a symbol, DDT11 will search
for partial symbol matches. DDT11 will then add as many
unambiguous characters as it can to the typed in symbol. If the
symbol has no matches, DDT11 will give a bell response. If the
symbol is ambiguous, DDT11 will fill in the unambiguous portion, if
any, and the give a bell response.
e.g. If DDT11 knows the symbol FOOP and no other symbols begining
FO and the user types FO<control F>, DDT11 will add OP to the
symbol.
e.g. If DDT11 knows the symbols FOO1 & FOO2 and no other symbols
which begin FO and the users types FO<control F>, DDT11 will add
one O and then give a bell since the symbol is ambiguous.
DDT11 (preliminary) Page 11
6.0 ADVANCED FEATURES
6.1 MASK
Searches and watching for changes in value are done with a mask.
The mask register is specified by typing $M. To open and examine
the mask register a / follows the $M. When the mask register has
been opened it may be changed by depositing a new value in it.
e.g.:
$M/ 177777 177577
$M/ 177577
6.2 SEARCHES
Two types of searches are implemented in DDT11. The format of a
search for a match is:
a<b>c$W
where a is the lower limit for the search, b is the upper limit for
the search and c is the value to match. The format for a not-match
search is:
a<b>c$N
where a is the lower limit for the search, b is the upper limit for
the search and c is the value to not match.
If search limits are not given the previous limits will be used.
If examining a running PDP-11 the initial limits are 0. If reading
a dump the initial limits are all of the dump.
6.3 DUMPING
Occasionally it may be desireable to make a line printer dump of
what DDT11 is examining. The $D command is used for this purpose.
Limits for the command are given as for word searches. The current
output format is used for output.
After typing the $D command DDT11 will ask for a file specification
to dump to. If a file of the same name already exists the new dump
will be appended to the old dump. If the dump is part of a command
file the logging device for the command file will be used for dump.
If the file specification is followed with a /DISASSEMBLE, DDT11
will produce output which looks like an assemble listing.
6.4 MONITORING A LOCATION.
When DDT11 is being used to watch a running PDP-11 it may be useful
DDT11 (preliminary) Page 12
to watch a particular location for changes. The $V command is used
for this purpose for an opened location.
6.5 PUNCHING A BINARY TAPE
After DDT11 has read in a binary file, it may be desireable to
punch out a patched file. The $P command is used to tell DDT11 to
punch out a binary file. The binary file will represent only
locations which are within the search limits, and which were either
read from the original binary file, or were deposited into.
Switches may accompany the file spec. Legal switches include:
/BM873 Indicates want tape to punch a BM873 ROM.
/IMAGE To make a file to be PIP'ed to a PTP with /I.
/M9301 To make a tape for a M9301 ROM.
/PACKED To make a packed binary file suitable for BOOT11
or NETLDR. This is the default switch.
6.6 STARTING A PDP11
When examining a PDP11 with the /NODE initialization the program
can be started with the $G command. e.g.:
FOO$G
If DDT11 was initialized to read a binary file the command will set
the starting address for a $P command.
DDT11 (preliminary) Page 13
7.0 COMMAND FILES
Command files may be used with DDT11. To start a command file the
command $Y is typed.
After the $Y is typed DDT11 will ask for where to log responses.
Responding with a <CR> will default to output on the controlling
tty.
Next DDT11 will ask what command file to read.
7.1 Command File Echoing
Usually as characters are read from a command file, the characters
will be echoed into the log file. If a <control S> is encountered
in the command file echoing will be suspended until a <control Q>
is enountered.
7.2 Macro Style Arguments
During the execution of command files ^A is used to delimit symbols
whose values are to be converted to ASCII text. e.g.: If the
symbol FOO had a value of 13, and if the command file contained a
string "L^AFOO^ABLK" it will be processed as if it had been
"L13BLK".
7.3 %TAG:
Command files may contain tags. Tags are of the form "%TAG:" where
TAG is an alphanumeric string. The first character after the "%"
should be alpha. Only the first 5 alphanumeric characters are
used. Care must be used in chosing tags so that a "%" in a text
input string will not be confused with a tag elsewhere in the
command file.
7.4 %GOTO %TAG
Command files may contain unconditional branches by including %GOTO
%TAG commands. The %TAG may be anywhere in the command file.
7.5 %IF C exp %TAG
Conditional branches may also be included in the command files.
For numeric tests exp is a general expression. For DEF or NDF, exp
is a single symbol name. For ERR, exp is not absent. If the
condition is true control will be transfered to %TAG. The
conditions which may be tested for are:
DEF The symbol is tested for existence.
DF Same as DEF.
E Same as EQ.
DDT11 (preliminary) Page 14
EQ Expression is tested for a zero value.
ERR Tests, and clears the error flag. The error flag is set
if an undefined symbol is used in an expression, or if
an illegal command is typed.
G Same as GT.
GE The expression is tested for a positive value.
GT The expression is tested for a positive, nonzero value.
N Same as NE.
NDF The symbol is tested for nonexistence.
NE The expression is tested for a nonzero value.
L Same as LT.
LE The expression is tested for a zero or negative value.
LT The expression is tested for a negative value.
DDT11 (preliminary) Page 15
8.0 SIMULATION
8.1 $G
To begin simulating the $G command is given. If the escape is
preceeded by an expession, the expression is taken as the starting
address for the simulation, otherwise the current contents of the
PC (register 7) is used.
8.2 $X
To execute a single instruction the $X command is used. If the
escape is preceeded by an expression, the expression is used as the
starting address, otherwise the current PC (register 7) is used.
If the escape is followed by an octal or decimal number, the number
is taken as the number of instructions to execute before stopping
the simulation. The $$X command is used to execute a subroutine
call, and simulation will proceed until the subroutine returns.
8.3 Simulation speed.
On a 2050 or a 1080 the simulation proceeds at rates varying
between 10 and 45 u-seconds per PDP-11 instruction executed. The
range in speed depends primarily on what addressing modes are used,
with typical programs running around 22 u-second per PDP-11
instruction.
DDT11 (preliminary) Page 16
APPENDIX A
SUMMARY OF COMMAND CHARACTERS
null <0> Ignored
^A Illegal except in command files.
^B <1>-<2> Illegal.
^C <3> Monitor command to return to monitor.
^D-^E <4>-<5> Illegal.
^F <6> Requests DDT11 to typein rest of symbolic name (if
unique).
bell <7> Illegal.
backspace <10> Same as ^.
tab <11> Change location pointer to last adr typed, then display
location.
lf <12> Advance to the next sequential location and display its
contents.
vt <13> Illegal.
ff <14> Illegal.
cr <15> Closes current location.
^N <16> Illegal.
^O <17> Monitor command to shut off typeout.
^P <20> Illegal.
^Q <21> Monitor command to pause output.
^R <22> Causes DDT11 to retype a partial command.
^S <23> Monitor command to resume output.
^T <24> Illegal.
^U <25> Deletes current typein.
^V <26> Illegal.
DDT11 (preliminary) Page 17
^W <27> Deletes current typein up to previous operator.
^X <30> Logical exclusive or operator.
^Y <31> Illegal.
^Z <32> Requests DDT11 to clean up and exit to the operating
system.
escape <33> Meaning depends on next alphabetic character.
<34>-<37> Illegal.
space <40> Ignored at the begining of expressions, between symbolic
names is same as "+".
! <41> Logical inclusive operator.
" <42> Used to initiate text typein.
<43>
$ <44> Character used to form symbolic names.
% <45>
& <46> Logical and operator.
' <47> Division operator.
( <50>
) <51>
* <52> Multiplication operator.
+ <53> Addition operator.
, <54> Separator for multiword expressions.
- <55> Subtraction operator.
. <56> If used alone stands for current location pointer, else
a character in a symbolic name.
/ <57> Requests previous expression become current location and
display of current location.
0-7 <60>-<67> Octal digit. Used either as a character in a
symbolic name, or as a character in an octal or decimal
number.
DDT11 (preliminary) Page 18
8-9 <70>-<71> Used either as a character in a symbolic name, or as
character in a decimal number.
: <72> Defines previously typed symbolic name to be a tag with
same value as current location pointer.
; <73> Requests previously opened location be retyped in
current output mode.
< <74> Requests previous expression become the new lower limit
for search, dump, or binary output.
= <75> Requests previous typein or typeout be retyped in the
current numeric radix.
> <76> Requests previous expression become the new upper limit
for search, dump, or binary output.
? <77> When typed after a partial symbolic name will provide a
list of all symbolic names which are partial matches.
@ <100>
A-Z <101>-<132> Alphabetic characters, used to form symbolic names.
[ <133> Requests previous expression become current location and
display of current location in current numeric radix.
<134>
] <135>
^ <136> Backs up current location pointer and displays new
location.
<137>
` <140>
a-z <141>-<172> Same as "A"-"Z" except in text typein.
{ <173>
| <174>
} <175>
~ <176>
rubout <177> Deletes the previous character. In command files
rubout is ignored.
DDT11 (preliminary) Page 19
APPENDIX B
STB FILE FORMAT
This appendix describes the internal format of STB files as used by
DDT11. These files are in a format convenient for DDT11 and are
not related to any other STB file format.
Header +-----------+-----------+
Block ! Version # ! Length ! 0,,10 (length of header block)
! Length ! 4 (length of symbol block)
! Symbol offset ! 0
! Value offset ! 1
! Flag offset ! 2
! Module offset ! 3
! Unused !
! Unused !
+-----------------------+
Symbol +-----------------------+
Block ! SIXBIT symbol !
! Value for symbol !
! Flags ! Mask !
! Module name !
+-----------------------+
Version 0 flags are:
SMF.BY 1B1 Byte instruction
SMF.11 1B2 PDP11 symbol
SMF.P8 1B3 PDP8 symbol
SMF.PL 1B4 Set processor level instruction
SMF.MK 1B5 Mark type instruction
SMF.EM 1B7 EMT type argument
SMF.JS 1B8 JSR type register usage
SMF.RT 1B9 RTS type register usage
SMF.SB 1B10 SOB type address
SMF.BR 1B11 Low 8 bits are branch offset
SMF.SS 1B12 Low 12 bits are SSDD
SMF.DD 1B13 Low 6 bits are destination
SMF.EI 1B14 EIS instruction format
SMF.IN 1B15 Instruction value
SMF.RG 1B16 Register value
SMF.SU 1B17 Suppressed (defines with a =)
DDT11 (preliminary) Page 20
Page Index-1
INDEX
$<cr> command . . . . . . . . . . 6
$<lf> command . . . . . . . . . . 6
$A command . . . . . . . . . . . 8
$B command . . . . . . . . . . . 8
$C command . . . . . . . . . . . 8
$D command . . . . . . . . . . . 11
$G command . . . . . . . . . . . 12, 15
$I command . . . . . . . . . . . 8
$K command . . . . . . . . . . . 10
$M command . . . . . . . . . . . 11
$N search . . . . . . . . . . . . 11
$P command . . . . . . . . . . . 12
$Q . . . . . . . . . . . . . . . 9
$R command . . . . . . . . . . . 8
$S command . . . . . . . . . . . 8
$T command . . . . . . . . . . . 8
$V command . . . . . . . . . . . 11
$W search . . . . . . . . . . . . 11
$X command . . . . . . . . . . . 15
$Y command . . . . . . . . . . . 13
$^ command . . . . . . . . . . . 6
%GOTO %TAG . . . . . . . . . . . 13
%IF C exp %TAG . . . . . . . . . 13
%TAG: . . . . . . . . . . . . . . 13
/ command . . . . . . . . . . . . 5
/BM873 . . . . . . . . . . . . . 12
/DISASSEMBLE . . . . . . . . . . 11
/IMAGE . . . . . . . . . . . . . 12
/M9301 . . . . . . . . . . . . . 12
/PACKED . . . . . . . . . . . . . 12
; command . . . . . . . . . . . . 5
? command . . . . . . . . . . . . 10
Backspace command . . . . . . . . 5
BOOT11 . . . . . . . . . . . . . 3
Command arguments . . . . . . . . 13
Command files . . . . . . . . . . 13
Defining symbols . . . . . . . . 9
DTELDR . . . . . . . . . . . . . 3
dumping . . . . . . . . . . . . . 11
Escapes . . . . . . . . . . . . . 5
Expressions . . . . . . . . . . . 5
Instruction typein . . . . . . . 6
Page Index-2
lf command . . . . . . . . . . . 5
Lower Case Characters . . . . . . 5
MACDLX . . . . . . . . . . . . . 9
mask . . . . . . . . . . . . . . 11
monitoring a location . . . . . . 11
Multiple word typein . . . . . . 6
NETLDR . . . . . . . . . . . . . 3
Operator precedence . . . . . . . 6
Reading MACDLX symbols . . . . . 9
Reading RSX20F symbols . . . . . 9
RSX20F . . . . . . . . . . . . . 3, 9
Rubout . . . . . . . . . . . . . 6
searches . . . . . . . . . . . . 11
Simulation . . . . . . . . . . . 15
Starting a PDP11 . . . . . . . . 12
STB file format . . . . . . . . . 19
Symbols . . . . . . . . . . . . . 9
Text typein . . . . . . . . . . . 6
Typeout modes . . . . . . . . . . 8
[ command . . . . . . . . . . . . 5
^ command . . . . . . . . . . . . 5
^F command . . . . . . . . . . . 10
^U command . . . . . . . . . . . 7
^W command . . . . . . . . . . . 7
_ command . . . . . . . . . . . . 5