.PP
.RS 25
.BI addfile
.RE 1
.br
Open (Alt-f,o)

Filemanager:
Name:
Alt-n: switch to line were you can write a filename.
Del,Backspace,C-h,C-u,left,right,home,end,C-a and C-e should work 
if bed is well configured (see man bed for key definitions)
Files:
Alt-f: switch to list of files. You can open one file by pressing 
Enter. Use up and down to move between files.
Directories:
Alt-d: switch to list of directories. Change to directory by 
pressing Enter.

Tab,Alt-Tab and/or Shift-Tab can be used to jump between File,Directories and
Name.
.PP
.RS 25
.BI dosave
.RE 1
.br
Save (Alt-f,s)

Save current file. 
.PP
.RS 25
.BI saveas
.RE 1
.br
Save as (Alt-f,a)

Save currently active file to a file with another name. 
.PP
.RS 25
.BI rewrite
.RE 1
.br
Refresh (Alt-f,r)

Rewrites screen. 
.PP
.RS 25
.BI selectprocedure
.RE 1
.br
Procedures (Alt-t,p)

Listing of available procedures to bind to keys or use in plugins. 
You can press return on the name to run the procedure. 
Press F1 to get help about the procedure.
.PP
.RS 25
.BI selectdynprocedure
.RE 1
.br
Dynamic (Alt-t,d)

Listing of available dynamic procedures (procedures defined in plugins) to 
bind to keys, place in menu or use in plugins. You can press return on 
the name to let it work. Press F1 to get help about a procedure.
.PP
.RS 25
.BI closethis
.RE 1
.br
Close (Alt-f,c)

Close the current file. 
.PP
.RS 25
.BI quit
.RE 1
.br
Exit (Alt-f,x)

Quit application. For all changed files you are asked to save it. 
.PP
.RS 25
.BI undo
.RE 1
.br
Undo (Alt-e,u)

Undo last change. 
.PP
.RS 25
.BI redo
.RE 1
.br
Redo (Alt-e,r)

After you have undone something with undo, you can redo it with redo.
.PP
.RS 25
.BI setselect
.RE 1
.br
Select (Alt-e,s)

Turns selection on or of. 
.PP
.RS 25
.BI copyselect
.RE 1
.br
Copy (Alt-e,c)

Copies selected part of the file to copy buffer. 
.PP
.RS 25
.BI pastselect
.RE 1
.br
Past (Alt-e,p)

Past selection. 
.PP
.RS 25
.BI saveselect
.RE 1
.br
Save selection (Alt-e,a)

Save selection or copy buffer. 
.PP
.RS 25
.BI replace
.RE 1
.br
Replace (Alt-e,e)

Regular expression: 
Use the GNU regular expression library to match a pattern 
against the text (See man regex(7)). 
In normal search the search string is first converted to bytes
and then matched with the raw file content. With regex search the
file content is first converted to the datatype before regex search.
Sometimes different bytes have the same appearance in a datatype.
In that case you should always search with regex checked,
examples: Float, char2 and when filters like duplicate or skip 
are applied.
Case sensitive: 
When checked upper and lower case are treated distinctively.
Boundaries: 
Multibyte datatypes can be aligned differently. For example a 4
byte digit can start at offset 0,1,2 or 3 and that will give
different 4 byte digits. Without checking Boundaries all will
be returned. With Boundaries checked only bytes aligned in the
same way as is now shown on the screen are returned.
Forward: 
When checked the file is searched in the forward
direction going from lower to higher offsets. When not checked 
the file is searched backward.
Edge file: 
When checked the file is searched from the edge of
the file. From offset 0 when searching forward, from end of
file when searching backward.
Find: Here you type the search pattern
Replace:
At the place where the search string is found the 
replacestring is placed. The replace string overwrites the data. 
When Regular expression is checked you can insert the whole search 
string by & or supexpressions by \e1 \e2 to \e9. In the searchstring
subexpressions are demarcated by \e(pattern\e).
List: 
Generates a list of all hits. When compiled with
CONFIG_THREADS=y you can go on editing while hits are marked
so you can view them in marklist (Alt-k,l).
Ascii, Digit etc are when checked the current active datatype.
Base:
Base of digit. E.g 16 for heximal. 
Nr bytes: 
Gives the number of bytes each data item occupies. By
some datatypes you can change this for example by unsigned integers. 
Reverse:
Reverse bytes while transforming from datatype to bytes.
Set: 
After changing datatype info (base,bytes,type) you press Return
on Set to make this the search datatype.
Convert: 
the same as Set in addition the current search string is converted.
Ok: search
Cancel: Cancel
.PP
.RS 25
.BI extend
.RE 1
.br
Extend file (Alt-e,x)

Make the file larger, adding zeros to the end of file. 
.PP
.RS 25
.BI truncate
.RE 1
.br
Truncate (Alt-e,t)

Truncates file on the right of cursor. 
.PP
.RS 25
.BI repeat
.RE 1
.br
Repeat nr (Alt-e,n)

Repeats command a certain number of times. 
.PP
.RS 25
.BI search
.RE 1
.br
Search (Alt-m,s)

You can move through the dialog by pressing Alt in combination with a 
highlighted character, or by pressing Tab,Shift-Tab or Alt-Tab.
Press Shift to check options.
Standard you search within the currently active datatype, but
you can also use Ascii or Digit (unsigned integers) by selecting them,
specifying base and bytes and pressing Set.
Regular expression: 
Use the GNU regular expression library to match a pattern 
against the text (See man regex(7)). 
In normal search the search string is first converted to bytes
and then matched with the raw file content. With regex search the
file content is first converted to the datatype before regex search.
Sometimes different bytes have the same appearance in a datatype.
In that case you should always search with regex checked,
examples: Float, char2 and when filters like duplicate or skip are
applied.
Case sensitive: 
When checked upper and lower case are treated distinctively.
Boundaries: 
Multibyte datatypes can be aligned differently. For example a 4
byte digit can start at offset 0,1,2 or 3 and that will give
different 4 byte digits. Without checking Boundaries all will
be returned. With Boundaries checked only bytes aligned in the
same way as is now shown on the screen are returned.
Forward: 
When checked the file is searched in the forward
direction going from lower to higher offsets. When not checked 
the file is searched backward.
Edge file: 
When checked the file is searched from the edge of
the file. From offset 0 when searching forward, from end of
file when searching backward. If not checked searching starts
at the current position.
Find: Here you type the search pattern
List: 
Generates a list of all hits. When compiled with
CONFIG_THREADS=y you can go on editing while hits are marked.
You can view the hits in marklist (Alt-k,l).
Ascii, Digit etc are when checked the current active datatype.
Base:
Base of digit. E.g 16 for heximal. 
Nr bytes: 
Gives the number of bytes each data item occupies. By
some datatypes you can change this for example by unsigned integers. 
Reverse:
Reverse bytes while transforming from datatype to bytes.
Set: 
After changing datatype info (base,bytes,type) you press Return
on Set to make this the search datatype.
Convert: 
the same as Set in addition the current search string is converted.
Ok: search
Cancel: Cancel
.PP
.RS 25
.BI nextsearch
.RE 1
.br
Nextsearch (Alt-m,n)

Search again for the same search string. 
.PP
.RS 25
.BI gettopos
.RE 1
.br
Position (Alt-m,p)

Ask for a file offset and jumps to this offset. 
Forward: 
count up
Edge File: 
If checked: count from begin (forward) or end (backward) file. 
If not checked you count from the cursor position.
Boundaries: 
If checked: In multibyte units the screen is aligned at the current 
alignment (boundary) after changing position.
Position:
Offset to jump to.
You can specify in what format to specify the offset. 
All: specify offset with 0x for hex and 0 for oct. Numbers not starting with 0
are decimal numbers.
Hex,Dec,Oct: type of number without need to use 0x or 0 

.PP
.RS 25
.BI keymark
.RE 1
.br
Make (Alt-k,m)

Set mark 
.PP
.RS 25
.BI tomark
.RE 1
.br
Goto (Alt-k,g)

Goto mark. You are asked to type the corresponding key. 
.PP
.RS 25
.BI nextmark
.RE 1
.br
Next (Alt-k,x)

Goto next mark 
.PP
.RS 25
.BI prevmark
.RE 1
.br
Previous (Alt-k,p)

Goto previous mark. 
.PP
.RS 25
.BI showmarks
.RE 1
.br
List (Alt-k,l)

Shows list of all marks. Press Return to jump to the file offset of the 
selected mark.
.PP
.RS 25
.BI deletemark
.RE 1
.br
Delete (Alt-k,t)

Delete mark. You get an overview of current marks. Press return to delete
the currently selected mark.
.PP
.RS 25
.BI clearmarks
.RE 1
.br
Clear (Alt-k,c)

Delete all marks.
.PP
.RS 25
.BI savemarks
.RE 1
.br
Save (Alt-k,s)

Save marks to file.
.PP
.RS 25
.BI readmarks
.RE 1
.br
Read (Alt-k,r)

Read saved marks.
.PP
.RS 25
.BI postotop
.RE 1
.br
Top (Alt-i,t)

Moves file display so that the file offset at the cursor position 
is shifted to the upper left corner of the file display.
.PP
.RS 25
.BI beginfile
.RE 1
.br
Begin file (Alt-m,b)

Goto the beginning of file. 
.PP
.RS 25
.BI endfile
.RE 1
.br
End file (Alt-m,e)

Goto end of file.
.PP
.RS 25
.BI beginpage
.RE 1
.br
Begin Pg (Alt-m,i)

To the top of page.
.PP
.RS 25
.BI endpage
.RE 1
.br
End Pg (Alt-m,d)

Goto end of page 
.PP
.RS 25
.BI middlepage
.RE 1
.br
Middle Pg (Alt-m, )

Goto the middle of the page. 
.PP
.RS 25
.BI nextmode
.RE 1
.br
Next (Alt-d,n)

Goto the data type on the right of this data type. 
.PP
.RS 25
.BI prevmode
.RE 1
.br
Prev (Alt-d,v)

Goto the data type shown on the left of current active data screen.
.PP
.RS 25
.BI removemode
.RE 1
.br
Remove (Alt-d,r)

Closes data type screen part. 
.PP
.RS 25
.BI zoommode
.RE 1
.br
Full (Alt-d,f)

Zooms current data type (For example ASCII). 
.PP
.RS 25
.BI addprev
.RE 1
.br
Add Prev (Alt-w,d)

Adds previous file to the screen 
.PP
.RS 25
.BI addnext
.RE 1
.br
Add Next (Alt-w,a)

Adds the next file to the screen. 
.PP
.RS 25
.BI prevfile
.RE 1
.br
Prev (Alt-w,p)

Goto previous file. Zooming the file. 
.PP
.RS 25
.BI nextfile
.RE 1
.br
Next (Alt-w,n)

Goto next file. 
.PP
.RS 25
.BI firstfile
.RE 1
.br
First (Alt-w,f)

Goto the first opened buffer. 
.PP
.RS 25
.BI lastfile
.RE 1
.br
Last (Alt-w,t)

Goto last opened file. 
.PP
.RS 25
.BI zoomwindow
.RE 1
.br
Zoom (Alt-w,z)

Zooms current window 
.PP
.RS 25
.BI hidewindow
.RE 1
.br
Hide (Alt-w,h)

Get opened file from the screen without closing it 
.PP
.RS 25
.BI listfiles
.RE 1
.br
List (Alt-w,l)

List opened files. Press Enter to edit selected file.
.PP
.RS 25
.BI askbase
.RE 1
.br
Offset (Alt-t,o)

Changes the file offset number type. Offsets can be shown as decimal,
hexadecimal or octal numbers. You can also turn of the display of
offsets.
.PP
.RS 25
.BI switchmessage
.RE 1
.br
Messageline (Alt-t,m)

Hides or shows message line.
.PP
.RS 25
.BI switchmenu
.RE 1
.br
Menu (Alt-t,u)

Hides or shows menu bar.
.PP
.RS 25
.BI switchcommand
.RE 1
.br
Commandmode(on/off) (Alt-t,c)

Switches command mode on or off. In command mode procedures are bound
to normal characters as in pagers like 'less' and 'more' and in vi's 
command mode.
Some of less's and vi's keys are already bound in the configuration file.
If you like some more you should add them to the configuration file.
You can mail them to me if you like to help others.
.PP
.RS 25
.BI backchar
.RE 1
.br
Left

Go back one character.
.PP
.RS 25
.BI beginline
.RE 1
.br
Go to begin line (Home).
.PP
.RS 25
.BI endline
.RE 1
.br
Goto end line (End).
.PP
.RS 25
.BI fileinfo
.RE 1
.br
Show the name and size of file in the message line. (No key binding).
.PP
.RS 25
.BI firstmenuitem
.RE 1
.br
Goto the first menu element. (Home).

Only applies within an opened menu. You have to put 253 immediately after
the keys keyword. So for example:

keys 253 1 = firstmenuitem

makes that within an opened menu contr-a jumps to the first menu item.
.PP
.RS 25
.BI lastmenuitem
.RE 1
.br
Goto last menu element. See firstmenuitem for more information. (End).
.PP
.RS 25
.BI fromcommand
.RE 1
.br
Turns command mode off.
.PP
.RS 25
.BI linedown
.RE 1
.br
Down one line (Down).
.PP
.RS 25
.BI lineup
.RE 1
.br
Up one line (Up).
.PP
.RS 25
.BI nextchar
.RE 1
.br
Next character. (Right).
.PP
.RS 25
.BI nextmenu
.RE 1
.br
Goto next opened menu. (Right). Only applies in the context of the menu.
See firstmenuitem for more information,
.PP
.RS 25
.BI nextmenuitem
.RE 1
.br
Goto next menu item. (Down). See firstmenuitem for more information.
.PP
.RS 25
.BI nop
.RE 1
.br
Does nothing.
.PP
.RS 25
.BI pagedown
.RE 1
.br
Page down. (Pgdn).
.PP
.RS 25
.BI pageup
.RE 1
.br
Page up. (Pgup).
.PP
.RS 25
.BI prevmenu
.RE 1
.br
Goto previous menu. (Left). See firstmenuitem for more information.
.PP
.RS 25
.BI prevmenuitem
.RE 1
.br
Goto previous menuitem (Up). See firstmenuitem for more information.
.PP
.RS 25
.BI tocommand
.RE 1
.br
Turns command mode on.
.PP
.RS 25
.BI tosubscreen
.RE 1
.br
Goto the data screen corresponding to the number you type after this command. 
0 is the first from the left, 1 the second etc. (No key binding).
.PP
.RS 25
.BI emptyfile
.RE 1
.br
New (Alt-f,n)

Opens new document of size 1. 
You can enlarge the document with Alt-e,x.
.PP
.RS 25
.BI filedata
.RE 1
.br
Fileinfo (Alt-f,f)

Displays information about current file.
.PP
.RS 25
.BI checkchanged
.RE 1
.br
Modified? (Alt-f,m)

Checks if current file is modified by comparing changed parts with the
original file. 
.PP
.RS 25
.BI suspend
.RE 1
.br
Shell (Alt-f,h)

Go to shell. Starts a new shell or uses suspend.

If a new shell is evoked, it uses the SHELL environmental variable 
to decide which shell to use. You can also set environmental
variables in beds configuration file (see manual).
.PP
.RS 25
.BI input
.RE 1
.br
Input (Alt-e,i)

Modifies current data item. 
With this procedure you edit the current item and only after 
pressing Enter the modifications are inserted.
Certain datatypes you can't edit without this procedure (e.g.
Float and Time_t).
If you don't use this procedure, then the data item is converted to
and from binary format after every key you press.
.PP
.RS 25
.BI editdata
.RE 1
.br
Edit (Alt-e,d)

Evokes text editor to edit selected data in active datatype.

If the environmental variable EDITOR is set to the full path 
of an editor that editor is used.
You can set environmental variables in beds configuration file 
with the following command:

setenv name [val]

Leaving out val means unsetenv.

See bed's manual page or bed -h for more information.
.PP
.RS 25
.BI select
.RE 1
.br
Turn on or off selection. Selections can be copied and pasted, saved,
edited etc.
.PP
.RS 25
.BI saveshown
.RE 1
.br
Save Shown (Alt-e,v)

Save selection in the active datatype as shown on the screen.
So the selected data is first converted to the active datatype and
then saved to a file.
.PP
.RS 25
.BI readshown
.RE 1
.br
Insert shown (Alt-e,h)

Insert file content within active datatype. The content of the
file is interpreted as consisting of data in the active datatype.
.PP
.RS 25
.BI gotolastsearchpos
.RE 1
.br
Not searched (Alt-m,o)

Jumps to file offset not yet searched. Useful if you interrupted
searching or are searching on the background and want to know
where search was left.
.PP
.RS 25
.BI nextitem
.RE 1
.br
Next Item (Alt-m,x)

Moves one item forwards. Item is the active datatype unit.
.PP
.RS 25
.BI backitem
.RE 1
.br
Back Item (Alt-m,a)

Moves one item backwards. Item is the active datatype unit.
.PP
.RS 25
.BI prevpos
.RE 1
.br
Undo move (Alt-m,m)

Go to previous file offset.
.PP
.RS 25
.BI nextpos
.RE 1
.br
Redo move (Alt-m,v)

Go again to file offset before undo move.
.PP
.RS 25
.BI scrollup
.RE 1
.br
Up (Alt-i,u)

Scrolls file up. The second line is scrolled up to the first line position.
.PP
.RS 25
.BI edscholldown
.RE 1
.br
Down (Alt-i,w)

Scrolls file down. The first line is scrolled down to the second line position.
.PP
.RS 25
.BI scrollitem
.RE 1
.br
Left item (Alt-i,l)

Shift left one item. The second item is shifted leftwards to the first item position.
.PP
.RS 25
.BI scrollbackitem
.RE 1
.br
Right item (Alt-i,r)

Shift right one item. The first item is shifted rightwards to the second item position.
.PP
.RS 25
.BI scrollbyte
.RE 1
.br
Left byte (Alt-i,f)

Shift left one byte. The second byte is shifted leftwards to the second byte position.
.PP
.RS 25
.BI scrollbackbyte
.RE 1
.br
Right byte (Alt-i,g)

Shift right one byte. The first byte is shifted rightwards to the first byte position.
.PP
.RS 25
.BI makemode
.RE 1
.br
Integer (Alt-d,i)

Create unsigned integer datatype. You can select bases from 2 to 36. 
The number of bytes per unit range from 1 to some unknown limit 
depending on hardware speed.
You can start a separate datatype or add a field to an existing
datatype.
In the last case where in the existing datatype the new field is 
placed depends on the cursor position:
- At the end of the existing datatype if the cursor is at the end of
the screen
- At the beginning of the existing datatype if the cursor is at the
beginning of the screen
- Otherwise at the place closest to the cursor.
- After the cursor position if the distances are equal
.PP
.RS 25
.BI naarASCII
.RE 1
.br
Ascii (Alt-d,a)

Create ascii datatype.
No print: 
character to show if byte is not printable. 
You can also decide which byte values are interpreted as printable
characters. Strict is ascii only, +161-255 adds byte value 161-255 
etc. 
It is possible to make units of more then one character.
The meaning of separete/add field is explained under Integer help.
.PP
.RS 25
.BI emptycontain
.RE 1
.br
Empty (Alt-d,y)

Skip empty parts within a composed datatype.
Useful if a file contains records with parts you are not interested in.
.PP
.RS 25
.BI copymode
.RE 1
.br
Clone (Alt-d,c)

Create a datatype that is identical to the active (sub) datatype.
.PP
.RS 25
.BI addSigned
.RE 1
.br
Signed (Alt-d,s)

Create signed integer datatype. See Integer help for more information.
.PP
.RS 25
.BI addFloat
.RE 1
.br
Float (Alt-d,o)

Create float datatype:
4 bytes: float
8 bytes: double
12 bytes: long double

It is not possible to use normal search in the float datatype,
you need to use regex search. Normal search translates
the search string from the datatype format back to raw bytes and
searches for these raw bytes. This is not possible because float as
displayed has not a perfect precision so that that the float
that is displayed can correspondent to more then one raw byte array.
.PP
.RS 25
.BI addBitFlags
.RE 1
.br
BitFlags (Alt-d,b)

Create bitflags. Give every bit a label which is shown if that bit
has value 1. 
Not char:
If that bit is zero, the value of Not char is shown.
Add:
Bit-label correspondences are assigned by typing a bit number after 
Bit and the corresponding label after Label and pressing return on 
Add. Bits are numbered from 0 to (8*bytenr-1). With the lowest bit 
having number 0.
This creates a list of bit-label correspondences under Flags.
Flags:
You can edit one such correspondence by pressing Alt-f followed by
selecting the correspondence and pressing return. You change the
Bit and label values and again press Return at Add.
Del:
If you press on delete the selected correspondence is deleted.
Between:
What to write between bytes. Default: nothing.
Order:
When editing a file in bitflags every item is shown as some flags.
If you want to set a certain flag you write the label. If order is
set this is only possible if you are above the position of this
label. If order is not set you can set the label at every position.
Example:
If the flags are zyx and order is set you can change --- in --x only
by pressing x at position 0, without order you can press x
also at position 1 or 2.
.PP
.RS 25
.BI bitfielder
.RE 1
.br
Bitfield (Alt-d,e)

This is a record/struct in which you specify the number of bits
for every field. After making a bitfield around a datatype it works like
a normal composed datatype. You just add the other fields. 
You change the number of bits of a certain field by setting the cursor 
on that field and selecting again Alt-d,e but now you press 'Change Bits'.
Another way is to make the bitfield the active datatype by pressing Alt-y,t
(Parent) and then selecting Config (Alt-y,g).
.PP
.RS 25
.BI translate
.RE 1
.br
Translate (Alt-d,l)

Translate assigns labels to values of another datatype. You can use it when numbers
have a certain meaning.
After selecting 'New' or 'Change':
Type:
The To datatype is what is shown on the screen (usually Ascii).
For certain values of the 'From' datatype you specify what should be 
shown in the To datatype.
Add:
After specifiying the To and From datatypes, you specify the From 
and To values and press Add. 
Default:
If there is no assignment Default is shown.
Assignments:
After pressing Alt-g you can select a certain existing assignment.
Pressing Return makes it editable, pressing Del deletes it.

After selecting 'Use;
Select label and press return to insert this value.
.PP
.RS 25
.BI listtypes
.RE 1
.br
List (Alt-d,t)

List of all datatypes. Use movement keys to select one of them and press 
Return to create it.
.PP
.RS 25
.BI reorderunit
.RE 1
.br
Reorder (Alt-y,o)

One of the filters that is transforms the data when read from the file and
before interpreted by the datatype.
Reorders bytes within item. Unit gives the number of bytes to keep together.
If the bytes are 'abcdef', reorder with unit=1 gives 'fedcba', with unit=2 
gives 'efcdab', with unit=3 gives 'defabc'.
.PP
.RS 25
.BI duplicate
.RE 1
.br
Duplicate (Alt-y,i)

Useful if you like to use the same data more than once in a composed
datatype. It acts like an union in c. 
Filter that duplicates bytes before being interpret by the active (sub-)
datatype. You have to specify how many times it is duplicated (dubnr).
The active (sub) datatype consists of a certain number of bytes (size).
usenr=(size/dubnr) gives the number of bytes used for every item.
dubnr times the same usenr bytes are appended and given to the datatype.
Example:
You use ascii/4 (ascii consisting of 4 bytes). You say duplicate 2 
and the file consists of abcdefghijkl.
Before applying the filter this was displayed as abcd efgh ijkl.
After applying the duplicate filter it becomes abab cdcd efef ghghe ijij klkl.
.PP
.RS 25
.BI addskip
.RE 1
.br
Skip (Alt-y,k)

Filter to skips a certain number of bytes.
You have to specify after how many bytes and how many bytes are to be
skipped. This is then repeatedly applied to every unit of the active (sub-)
datatype.
Example:
The active datatype is ascii/4. The file contains 'abcdefghijkl'. 
abcd efgh ijkl is displayed. 
Applying Skip with After=2 and Skip=1 gives: abde ghjk.
After ab c is skipped after de f is skipped and after jk l is skipped.
It is not possible to use normal search in a datatype were Skip is
applied. You need to use regex search. Normal search translates
the search string from the datatype format back to raw bytes and
searches for that string. This is not possible when Skip is applied
because one search string can correspondent to more then one
raw content bytes string.
.PP
.RS 25
.BI rmlastfilter
.RE 1
.br
Rm filter (Alt-y,m)

Removes last filter (Reorder, Duplicate, Skip or some other filter
defined in a plugin).
.PP
.RS 25
.BI repeatcontain
.RE 1
.br
Repeat (Alt-y,p)

Repeats active (sub-)datatype a certain number of times. It behaves the same
as a composed datatype with multiple version of the current active (sub-)
datatype.
.PP
.RS 25
.BI datatypeconfig
.RE 1
.br
Config (Alt-y,g)

Modify parameters of active (sub-) datatype. Things like number of bytes
and the base of Integers.
.PP
.RS 25
.BI dataconfig
.RE 1
.br
Misc (Alt-y,s)

Modify some general display parameters of datatype. 
Label: 
Name for datatype shown on the message line
Apart: 
number of spaces between items of this datatype
Spaceafter: 
number of spaces between this datatype and an other datatype 
or the offset numbers.
Conf:
Configuration string every datatype has. Usually you don't need
to change this.
.PP
.RS 25
.BI savedatatype
.RE 1
.br
Write Type (Alt-y,w)

Save datatype to file so you don't have to recreate complex datatype 
everytime you need them.
.PP
.RS 25
.BI readcontain
.RE 1
.br
Read Type (Alt-y,d)

Read saved datatype. So that the current file is displayed in that format.
.PP
.RS 25
.BI record
.RE 1
.br
Record (Alt-t,r)

Start recording. Keystrokes are recorded until you press C-t. You
can save recorded keystrokes to replay them at some other moment.

Take notice of the fact that RAW keystrokes are saved. This means that
the recorded keystrokes are very unportable. They are not portable between
operating systems but also not portable between terminals and configurations.
What's is recorded within xterm does not nessesarily work with rxvt or
with linux console. You can use more portable keystrokes by using
only Alt-char and Control-char keys. The movement and function keys are
very unportable and also combinations of Alt or Control that make use of
non alphabetic characters.
.PP
.RS 25
.BI saverecord
.RE 1
.br
Save Recorded (Alt-t,s)

Save recorded keystrokes to file.
.PP
.RS 25
.BI playkeysfile
.RE 1
.br
Play file (Alt-t,y)

Play saved keystrokes (recorded with Record). 
The program runs like the keystrokes are pressed by the user, except when 
other programs are evoked from bed.
.PP
.RS 25
.BI playrecord
.RE 1
.br
Play Recorded (Alt-t,a)

If you have recorded keystrokes after program startup you can play them
off with this procedure.
.PP
.RS 25
.BI opendynlib
.RE 1
.br
Load plugin (Alt-t,l)

Load plugin in program. The plugin can contain datatypes or procedures.
Procedures you can view under Dynamic (Alt-t,d), datatypes under Alt-d,t.
.PP
.RS 25
.BI showprocedure
.RE 1
.br
Key binding (Alt-t,k)

Shows procedure in menu or binded to key sequence. 
You are asked to press the keys you want to know the procedure off.
Within menus you can only use a key and not movement keys to go to the
procedure you are interested in.

Beside the procedure it is shown what you need to write in the
configuration file to declare this key/menu-procedure binding.

Examples 
After Alt-t,k, you press F12 and get
keys 27 91 50 52 126 = makeselection

The procedure is makeselection which is bounded to escape 
sequence: 27 91 50 52 126
If you like to bind makeselection to an other key sequence you
press after Alt-t,k, the keys you want to bind it to, 
for example C-a and replace '27 91 50 52 126' with what you found there
for example 1. So add keys 1 = makeselection to the end of ~/.bedrc

After Alt-t,k you press Alt-f,x and get

menuitem 0 "E~xit" "M-x" 12 = quit

Procedure quit is bounded to a menuitem. The menu item is in menu 0
(the first menu) has label 'E~xit' and had keylabel 'M-x' and is the
twelves menuitem in the menu (starting with 0 and counting empty places).

If you like to change to name from 'E~xit' to '~Quit' you can add
menuitem 0 "~Quit" "M-x" 12 = quit 
to the end of ~/.bedrc

See the bed manual page for more details about assigning procedures
to menu items and keys.
.PP
.RS 25
.BI newcontain
.RE 1
.br
Sub (Alt-y,u)

With this function you can create a composed datatype within another
composed datatype. First make a element of a composed datatype
the active datatype and then use this function (Alt-y,u).
To make a sub composed datatype around the active datatype.
After this you can add more datatypes, to this sub composed datatype, 
by using the "Add field" option while starting a new datatype or 
by using Alt-y,r. New datatype created with add field
are always added to the lowest composed datatype in which the active
datatype is contained. The message line shows what datatype is active.
Use Alt-y,t and Alt-y,c to change to the datatype
this datatype is contained in and back again. You can also make the
composed datatype the active datatype by placing the cursor between
two of it's member (child) datatypes.
Subcomposed datatypes can be useful if you want to use a filter for only
a subset of the members of a composed datatype.
For example a file consists of records of three ascii strings and you
like to exchange the position of the first two strings.
After creating three ascii strings of 10 in one record (composed datatype),
you set the cursor on the first field and press Alt-y,u. This
makes a subcomposed datatype around this field. To add the second field
to this composed datatype you set the cursor at the second field and
press Alt-y,r. Now you set the cursor between the first two 
fields (or you press Alt-y,t) and you reorder with unit 10 using 
Alt-y,o.
.PP
.RS 25
.BI stretchcontain
.RE 1
.br
Stretch (Alt-y,r)

Used to handle nested composed datatypes (made with Alt-y,u).
If you have made a composed (struct/record) datatype for 
example: {{a,b,c},d,g}
Here the letters are datatypes and {..} is one composed datatype.
{a,b,c} is a nested (or sub) composed datatype.
If you put the cursor on d and apply this function, you can add d to
this sub composed datatype. So you get then {{a,b,c,d},g}.
.PP
.RS 25
.BI levelout
.RE 1
.br
Levelout (Alt-y,v)

Applies if active datatype is a composed/record datatype.
With this function the composed datatype is removed so that the item(s)
endup at a higher level.
It can be used in two cases:
1. a nested composed;
2. a composed containing only one datatype.
.PP
.RS 25
.BI uplevel
.RE 1
.br
Parent (Alt-y,t)

Parent datatype. Make active datatype the datatype in which the current
datatype is contained. 
.PP
.RS 25
.BI downlevel
.RE 1
.br
Child (Alt-y,c)

If applied to a composed datatype, this makes the current active datatype
the member of the composed datatype the cursor is on.
.PP
.RS 25
.BI goto1
.RE 1
.br
Goto the first open file.
.PP
.RS 25
.BI toclipboard
.RE 1
.br
Puts selection in active datatype in MS Windows clipboard.
.PP
.RS 25
.BI pastclipboard
.RE 1
.br
Insert MS Windows clipboard in active datatype.
.PP
.RS 25
.BI selectdisk
.RE 1
.br
Disk (Alt-f,d)

Edit raw data of floppies and hard disks.
This way you can handle the whole disk like a large file.

If you save something to a hard disk you should keep in mind that
bed saves by blocks (probably 4096 bytes). This can lead to problems
when some other process changes the hard disk close to the change you
made. In this case by saving what you changed, you will also 
save some old data at the place the other program had changed something.
So make absolutely certain that no other process could possibly have 
changed something around the place you change during the editing.

Under Linux, FreeBSD and Windows NT bed makes use of some standard
interface for raw disk access. Under windows 95 you need to use 
some undocumented thunk to a win16 dll to use the DOS Protected Mode 
Interface to execute a BIOS interrupt. So if you use Windows 95 backup
all your hard disks before opening a disk.

Under win95 you shouldn't give too much trust to the specified 
disk size. What the bios says is not exactly right and sometimes 
totally wrong (when using a large harddrive with an old bios).
Returned floppy sizes are mostly right so bed takes over the bios value
if -w is not specified at startup.
To determine the real harddisk size bed uses some ad hoc heuristic
while trying how far it can can read. The problem is that at very
large offsets the bios disk read interrupt returns SUCCESS again, 
so you have to try larger, but not too large offsets. 
At my computer reading a HD floppy at offset 2948608 fails, but reading 
at offset 5120000 succeeds. A DD floppy fails at 1474048 but succeeds at 
2948608. If the size seems to be wrong try to determine it and specify it
with the -d option at startup. Bed saves the disksize so you have
to specify it only once (within regedit at HKEY_LOCAL_MACHINE
SOFTWARE\eBed\ehardisks).
.PP
.RS 25
.BI filetype
.RE 1
.br
Uses the unix program file to guess the filetype of the data starting at
the current cursor position. It can be used when the cursor is on the
first byte of a file or when searching for files inside a harddrive device.
plugin file.cpp
.PP
.RS 25
.BI filter
.RE 1
.br
Gives the content of the selection as input to a user specified command
(e.g. grep '^X'|sort|uniq) and places the output of that command in the
copy buffer.
plugin filter.cpp
.PP
.RS 25
.BI disassembler
.RE 1
.br
File content at cursor position is translated to assembler code.
Makes use of gdb. Use nextdisassem to jump to the next machine code.
Use gotosymol (elftables.plug) to jump to procedure using its
procedure name
plugin disass.cc
.PP
.RS 25
.BI nextdisassem
.RE 1
.br
Jumps to next machine code instruction and disassemble it:
Cursor position is moved the length of the current machine code
statement further and disassembler is called.
plugin disass.cc
.PP
.RS 25
.BI backward
.RE 1
.br
Adds the backward filter.
This filter tries to reverse the direction of the last applied filter.
plugin backward.cc
.PP
.RS 25
.BI compare
.RE 1
.br
Compares last made selection with current file at current cursor
position for the length of that selection.
If some variant of klipper isn't running, there is no limit on selection
size (As long as they say to be of class klipper they form no problem,
because I don't give the content of the whole selection to programs of
class klipper).
plugin searchclip.cc
.PP
.RS 25
.BI searchclip
.RE 1
.br
Searches in current file for the content the bed's copy buffer.
It takes over the search settings (direction, case sensitivity, regex or not,
on boundaries or not, from current position or from edge of file) of Alt-m,s.
Currently it repeatedly searches for the first block of the copy buffer
and then compares it with the whole copy buffer.
plugin searchclip.cc
.PP
.RS 25
.BI tryinstall1
.RE 1
.br
Installs Float with installpart/1 and getFLoat
plugin install.cc
.PP
.RS 25
.BI tryinstall2
.RE 1
.br
Installs Digit with installpart(part,0) and getDigit
plugin install.cc
.PP
.RS 25
.BI cutselect
.RE 1
.br
Standard cut: selection is put in copy buffer, file after selection
is moved to begin selection and rest file is truncated
plugin cut.cc
.PP
.RS 25
.BI insertpast
.RE 1
.br
Standard past: file is extended and content after current file
position moved so that copy buffer content can be inserted
plugin cut.cc
.PP
.RS 25
.BI index2table
.RE 1
.br
index2table

index2table interprets the file content as long's (4 bytes)
which are indexes in a table at some offset in the current file.
Instead of the index number it displays the content of that table
at that position. index2table is a filter that should be applied
to a datatype appropriate for the data in the table. For this
purpose this procedure asks to specify at what offset in the file
the labels start, with what index the table starts and table length.
Index2table is for example
used to show the names of procedures in a symbol table.
index2table is then applied to multibyte ascii that shows
this label instead of the index.
dynsym and symtab are sub classes of index2table.
They are used by misc/dynsym.bedda and misc/symtab.bedda.
Because of this use index2table was previously called symtable.
plugin index2table.cc
.PP
.RS 25
.BI section
.RE 1
.br
Used by composed datatype file sectionheader.bedda to show
labels of names in section header
plugin elftables.cc
.PP
.RS 25
.BI dynsym
.RE 1
.br
Used by composed datatype file dynsym.bedda to show the procedure
names in dynsym (dynamische) symbol table.
plugin elftables.cc
.PP
.RS 25
.BI symtab
.RE 1
.br
Used by composed datatype file symtab.bedda to show the procedure
names in symtab (statische) symbol table.
plugin elftables.cc
.PP
.RS 25
.BI gotosymbol
.RE 1
.br
Procedure searches in symbol tables symtab and dynsym for a given
symbol. It sets the cursor to its fileoffset and starts a better fitting
datatype. It shows the offset and its size in the message line.
plugin elftables.cc
.PP
.RS 25
.BI rxvtmenu
.RE 1
.br
Add rxvt menu.
You can remove the scrollbar, reverse video and if you don't have
a buggy rxvt you can change fonts.
plugin rxvt.cc
.PP
.RS 25
.BI switchsize
.RE 1
.br
Switches xterm size to a large size if small or to a small size if large
plugin switchsize.cc
.PP
.RS 25
.BI pastclipboard
.RE 1
.br
Past clipboard. This is data copied by bed or a Xwindows program.
plugin putselect.cc
.PP
.RS 25
.BI makeselection
.RE 1
.br
Turn on or off selection. Selections can be copied and pasted, saved,
edited etc. Within a xterm the selection is usually shared with other
X window Programs.
plugin putselect.cc
.PP
.RS 25
.BI pastselection
.RE 1
.br
Past Xwindows selection.
plugin putselect.cc
.PP
.RS 25
.BI copyclipboard
.RE 1
.br
Copies selection.
plugin putselect.cc
.PP
.RS 25
.BI pastspecial
.RE 1
.br
Only available if a bed owns the clipboard.
Shown:
With this function you can past data formatted as shown on
the screen. So you can for example insert in ascii the data as
shown in heximals
Datatype:
Past datatype of copied data.
plugin putselect.cc
.PP
.RS 25
.BI exportselection
.RE 1
.br
Make selection the xwindows selection.
plugin putselect.cc
