home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d09xx
/
d0934.lha
/
AZap
/
AZapEnglish.doc
< prev
next >
Wrap
Text File
|
1993-12-20
|
18KB
|
466 lines
AZap - User's Manual
AboutThisDoc
This manual describes release 2.11 of the utility AZap. This program
is (c)1992-1993 by Denis GOUNELLE, any commercial usage or selling without
author's written authorization is strictly forbidden. You can copy and
spread this program under the following conditions:
- all the files are provided
- the files are not modified in any way
- you don't charge more than $6 for copy fee
In spite of several tests, no warranty is made that there are no
errors in AZap. YOU USE THIS PROGRAM AT YOUR OWN RISK. In no event will I be
liable for any damage, direct or indirect, resulting of the use of AZap.
Introduction
AZap is a "new generation" binary editor able to edit files, memory
or devices like hard disks. It can open several windows at the same time,
and while this program cannot be considered as a tool to help you to recover
a disk, it has a lot of useful functions (print block, fill block, search
string, etc...).
CAUTION:
It is absolutly forbidden to use this program to modify a
copyright notice, or any other illegal usage. Unexperienced
users should be aware that this program may destroy their
programs, or cause severe data loss.
Criticisms and suggestions will always be welcomed. Write to:
M. GOUNELLE Denis
Boite 71
6, rue des cailloux
92110 CLICHY - FRANCE
You can also send a message to the following Internet address :
"gounelle@alphanet.ch". Note that this mailbox is not mine, so please send
only short messages. As I don't have direct access to the messages, don't
expect an answer before a dozen of days.
Thanks to Pierre ARDICHVILI and Jean-Yves PROUX for beta-testing and
suggestions.
Installation
This program requires "reqtools.library" (version 2.0c or higher) to
run, so you must copy it in your "LIBS:" directory before. The
"reqtools.library" is (c)1990-1993 by Nico FRANCOIS.
AZap is now localized, so it can adapt itself to your favorite
language. All you have to do is to copy the good catalog file into the
directory corresponding to your language. For exemple, if your default
language is french, copy the "franτais.catalog" into the
"SYS:Locale/Catalogs/Franτais" directory, under the name "AZap.catalog."
The german catalog was translated by Stefan SALEWSKI.
The dutch catalog was translated by Paul WETERINGS.
Running_from_CLI
This program detach itself from CLI window. It accepts the following
arguments:
WBENCH
Use Workbench screen instead of custom screen.
LACE
Use an interlaced custom screen. This option is ignored if the
WBENCH option is specified too.
FONT name
Use the specified font instead of internal 6x9 font. "name" must
be given as <font name><Y size>, like "courier9". AZap will use
this font only if it isn't proportionnal and if it isn't too
large to display a 512 bytes block.
MEMORY
Open a window to edit memory.
DEVICE name
Open a window to edit specified device. Don't forget the colon
(":") at the end of the name.
Any other argument is supposed to be the name of a file to edit. You can
specify as many names as you want, but only the first eight will be used. Of
course, you can mix file names, MEMORY and DEVICE options. Last, if no
argument is specified, a file requester appears (see "The_Project_menu") so
you can select the file to edit.
Running_from_Workbench
You can specify the following options in the "TOOL TYPES" of AZap
icon:
OPTIONS=WBENCH or OPTIONS=LACE
See the description of WBENCH and LACE options in
"Running_from_CLI" section.
FONT=name
See above the description of FONT option in "Running_from_CLI"
section
A file requester will appear (see "The_Project_menu") so you can select the
file to edit.
The_edit_window
The left part of the display shows the block contents in
hexadecimal, by sets of 4 bytes. The right part shows the same information
but as characters. Bytes corresponding to non-printable characters are
replaced by a point (".").
At the bottom right of the window are displayed several
informations: the block address (relative to beginning, in hex), the offset
in the block (in hex), the block number (relative to beginnin, in decimal),
and the block type. This last information is not significant unless you edit
a DOS device. When block contents has been modified but not written, a star
("*") is displayed at the right of the first line. When block checksum is
valid, a "V" character is displayed at the right of the second line (this
information is not significant unless you edit a DOS device).
When the window is opened, the first block is displayed and the
cursor is on the first character of the right part. The corresponding
position in the left part is showed by a display in a different color. You
can move the cursor whith the arrow keys. To switch between a part to
another (left to right or right to left) just press the tabulation key. You
can also move anywhere you want using the mouse. To modify data, just type
in the new datas over the old ones. In the left part, only "0" to "9", "a"
to "f" and "A" to "F" characters are allowed. AZap keep in mind the 32 last
changes: as long as you have not moved to another block you can undo these
changes with the escape key. The following keys are also accepted:
ctrl-up go to first block
ctrl-down go to last block
ctrl-left go to previous block
ctrl-right do to next block
shift-up go to first line
shift-down go to last line
shift-left go to first byte of the line
shift-right go to last byte of the line
The buttons at the bottom of the window allow (from left to right)
to go to the first block, to go to the previous block, to write the changes,
to go to the next block, to go to the last block, and to go to a given
address. In this last case, a requester appears, so you can enter the
address to go. Use the following syntax:
nbr jump at address 'nbr'
ºnbr jump at block 'nbr'
@nbr jump at address found by reading the long word at address
'nbr' (when editing memory only)
#nbr jump to the memory area number 'nbr' (when editing memory
only)
The address may be an expression, whose syntax is described in the
"Expressions_syntax" section.
You may also use the proportionnal gadget, at the bottom of the
window, to change your position. Be aware that, in all circumstances, if you
move to another block without writing the changes made to the current block,
all changes will be lost !
To close the edit window, just click on the close gadget. If the
block has been modified but not saved, you will be asked for confirmation.
The program stops when the last edit window is closed.
The_Project_menu
Open file...
Opens a new window to edit a file. A file requester will appear,
so you can select the file to edit. A memory window will be
opened if you select "RAM:", or a device window if you select a
device (like "DH0:")
Open memory
Opens a new window to edit memory.
Open device
Use the sub-menu items to select the device to edit. AZap opens
a new window to edit this device.
Palette...
A palette requester appears, so you can modify screen's colors.
Save prefs
Save configuration: screen's colors and font. The options of the
current window are also saved as default options. The
configuration file is "S:AZap.config".
About...
Displays informations about the program.
Quit
Ends program execution. You will be asked for confirmation.
The_Edit_menu
Help...
Displays cursor keys usage with CTRL and SHIFT.
Undo all
Read current block to undo all changes not saved yet.
Jump back
Each time you move to another block with the "go to first
block", "go to last block" or "GOTO" buttons, the old position
is kept in memory. This command allows to jump back to this
position. The old position is also kept when you use this
command, so you can easely toggle between two blocks.
Next block
When editing a DOS device, this command allows you to go either
to the first data block (if the current block is a file header)
or to the next block (if the current block is a data block of a
OFS disk).
Parent block
When editing a DOS device and the current block is a file header
or a directory, this command allows you to go the directory
block corresponding to the parent directory of this file or
directory.
Root block
When editing a DOS device, this command allows you to go to the
root block of this device.
Header block
When editing a DOS device, this command allows you to go to the
next header block.
When you use one of these four commands, the old position is kept in
memory for the "Jump back" command.
The_Tools_menu
Infos
Displays some informations about the file/memory/device
currently edited.
Examine
When editing a DOS device, and if the current block is a header
block, this command displays what would have displayed the
"Info" command on the corresponding file or directory.
Print...
Prints a number of blocks starting from the current block. A
requester appears so you can specify another output file that
"PRT:" (the printer). Then AZap will ask you the number of
blocks to print.
Convert
A new window is opened, with four gadgets that enable you to
make convertions between binary, decimal, hexadecimal and ASCII.
Any value entered, either an expression for "BIN", "DEC" and
"HEX" gadgets, or a character string for "ASC" gadget, is
converted in the other units. You don't have to close this
window to continue editing.
Save block
Save a number of blocks starting from the current block. A file
requester appears so you can specify the file where to save the
blocks. Then AZap will ask you the number of blocks to save.
Fill block...
Sets all bytes of the current block to the same value. A
requester appears so you can enter a value: either 'c' to fill
with the "c" character or a number (ASCII code of the character
to use, prefixed by "0x" for an hexadecimal value).
The_Search_menu
Search...
Searchs for a string or a hexadecimal value. A requester appears
so you can enter the value to search : either a hexadecimal
value (prefixed by "0x", take care to enter an even number of
digits) or a character string (ASCII search). To search a string
beginning with "0x", put all the string between double quotes.
Search text... Searchs for a string of printable characters. This
may be useful, for exemple, to locate a text area. A requester
appears so you can enter the minimal length to search for. A
value lower than 4 is generally not very interesting.
Search next
Continue last search starting from current position.
For all searchs, AZap move to the position where an occurence is
found, or the screen flashes. The previous position is kept in
memory for the "Jump back" function (see "The_Edit_menu" section).
You can abort a search, and AZap will find a string laid on two
consecutives blocks.
Search file
Goes strait to the header of a given file or directory. A file
requester appears, so you can select the file. AZap will then
open a new device window for the corresponding device, and show
the header block of the file.
The_Options_menu
Take care that options are "locale" to a window : if you change the
options of a window, the others windows won't be affected. When you open a
new window, it takes the options of the current window.
Checksum
Specifies when AZap must update block checksum (used only when
editing a DOS device). Choices are : "always" (update for *ALL*
blocks), "Ask if" (you will be asked for), "Boot blocks" (only
for 0 and 1 blocks) and "Automatic" (only if checksum was valid
when reading block).
Auto save
AZap will automatically save any modified block as soon as you
will ask to move to another block.
Read only
You won't be allowed to modified data.
lwr = UPR
Specifies if lower case and upper case characters are to be
distinguished when making an ASCII search.
Backup copy
Specifies if AZap must make a backup copy of edited files. If
selected, at the next write attempt a requester will appear so
you can enter the name of the copy to create. AZap will then
make a copy of the file before recording your changes. If an
error occurs during the copy, the requester will come back so
you can specify another name. If you click on the "Cancel"
gadget, no copy will be made but your changes will be recorded
anyway.
Expressions_syntax
AZap is able to compute integer expressions. Default base is decimal
for addresses ("GOTO" gadget) or the base corresponding to the selected
gadget in the convertion window. Base may be specified with "%" (binary),
"#" (decimal), and "$" or "0x" (hexa) before any number. Valid operators
are :
+ addition
- subtraction
| logical "or"
& logical "and"
* multiplication
/ integral division
% reminder of integral division
< shift left
> shift right
By default, "*", "/", "%", "<" and ">" operators have higher priority but
you may use parenthesis. If there is a syntax error in an expression, its
result will be set to -1.
Important_notes
When starting to run, AZap read the ExecBase structure to know you
memory configuration. Only memory areas defined is memory management lists
may be edited. Except when searching, these areas are considered as adjacent
and AZap will move automatically from an area to another. The "Infos"
command (see "The_Tools_menu" section) displays the addresses of all areas.
Reading and writing memory is done after having disabled task switching, in
order to avoid conflicts.
AZap can recognize the type of the device you edit. Some operations
("next block", "parent block" and "root block", see "The_Edit_menu" section)
are disabled on non AmigaDOS devices, but don't forget to check the
"Checksum" option. AZap knows about OFS (Old File System) and FFS (Fast File
System) and handle both file systems.
History
AZap is written almost in C language, and was developped on an Amiga
3000 UNIX-1 (10 Mb RAM, internal HD disk drive, internal hard disk of 100
Mb, external SyQuest drive of 88 Mb, external floppy disk drive, 1960
monitor and Star LC24-10 printer) connected by a null-modem cable to an A500
with 1 Mb RAM.
v1.00 14-Oct-92, 36084 bytes (Fish #759)
o First released version
v1.01 16-Oct-92, 36084 bytes
o Bug fixed: didn't worked if default public screen was less than
648 pixels wide.
v1.10 15-Nov-92, 36960 bytes
o Added "Header block" and "Examine" functions
o After a file request, open a memory window if "RAM:" was selected,
or a device window if a device name was selected (e.g. "DH0:")
v1.11 21-Nov-92, 36976 bytes
o Bug fixed: the "ºn" form in the "GOTO" function wasn't understood
v1.20 25-Dec-92, 40000 bytes
o Compiled with SAS/C 6.1
o Added "Search file" function
o The requester for the "GOTO" function displays the last value
entered
o If a string search fails, displays a message "foo not found"
o Devices can be named by their logical names (in command line and
file request, except RAM:)
v1.30 02-Jan-93, 40612 bytes
o Added "Save block" function
o The "Print..." function ask for the number of blocks to print
o The "Infos" functions displays disk type (OFS/FFS/NDOS)
o Search functions put together in a new menu
o A few bugs fixed in default font and WorkBench screen handling
v2.00 07-Feb-93, 42116 bytes
o Compiled with SAS/C 6.2
o Fully localized
v2.01 21-Feb-93, 41768 bytes
o Better handling of file requester
o A few bugs fixed in window options handling
v2.02 13-Mar-93, 42264 bytes
o No more gurus with a 68000 (some pointeurs were not aligned)
o Detach itself from CLI again
o The "About" window has a closing gadget
v2.03 15-Apr-93, 42292 bytes
o A few bug fixed in expression computation
o Bug fixed: the "modified block" flag was not always reset when
moving to another block
v2.04 24-Apr-93, 42468 bytes
o Show files pathname in window's title and "info" window
o Recognize all OS 3.0 filesystems
o A few bugs fixed in menus handling
v2.05 10-May-93, 42604 bytes
o Several bugs fixed in search function (hex and string)
v2.06 18-May-93, 42692 bytes
o A few bugs fixed in conversion function (bin/dec/hex/asc)
v2.07 03-Jul-93, 43548 bytes
o Compiled with SAS/C 6.3
v2.08 29-Jul-93, 43580 bytes
o If a read error occurs on a floppy or fixed disk, screen will
flash and the sector will be displayed with all bytes set to zero.
v2.10 15-Sep-93, 44200 bytes
o Added a proportionnal gadget at the bottom of the window
o Uses the new versions of GetDefaultTextFont() and OuvreEcran()
functions
v2.11 22-Sep-93, 44184 bytes
o Very funny bug fixed in searches: the display wasn't updated when
the search failed. So, as the cursor moves, the hex bytes under it
changed. Also, in some cases, you could move the cursor below the
window and down into the gadgets and such.