bed is a variable dataformat binary editor.
Menu driven binary editor. Dataformats are ascii, unsigned and signed integers, float, bitflags, bitfields, labels, ebcdic and time_t. Different sizes and byte ordenings are possible. Datatypes can be used in structures. Other dataformats, filters and procedures can be defined in plugins. Contains copy, past, undo, redo, search, replace, marks, record/play and context sensitive help. Linux & FreeBSD & Win95: edit block devices (linux limit 1023 gigabyte).
Some general remarks about working with bed. In bed you can do everything with the menu. You open a menu by pressing Alt in combination with the highlighted key. A menuitem is selected by pressing only the highlighted key or using movement keys followed by Enter. You can get help about a menuitem by pressing F1. You escape from menu by pressing Esc. In dialog boxes you can jump to the highlighted character by pressing Alt-char or by using Tab and Alt-tab or shift-tab. Options are switched on by pressing space or *. Buttons like Ok and Cancel are operated by moving to the button and pressing Enter.
While editing the usual movement keys should work, if they don't run bed -k.
Select works wp5.1 (and vi) like: You specify a starting point (Alt-e,s) and with whatever moving function exist you go to an other point and you then press copy (Alt-e,c) or save selection (Alt-e,a).
Bed has only a typeover mode, so your data doesn't move to another offset without explicitly saying so. To extend a file you should explicitly call Alt-e,x. If you like to left something out you should copy everything after it past it over what you like to remove and truncate the file with Alt-e,t.
To be able to handle large files (e.g. whole harddrives) bed only holds in memory what is changed and reads the other parts from disk at the moments they are needed.
If bed seems to get in some end less operation, you can try Ctrl-C (Ctrl-Break when using win95 with pdcurses). It should bring bed back to it's main loop, but sometimes problems arise.