home *** CD-ROM | disk | FTP | other *** search
-
-
- AZap - User's Manual
-
-
-
-
-
- AboutThisDoc
-
- This manual describes release 2.20 of the utility AZap. This program
- is (c)1992-1994 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
- 27, rue Jules GUESDE
- 45400 FLEURY-LES-AUBRAIS
- 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, Reza Elghazi, Yves Perrenoud, 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 dutch catalog was translated by Paul WETERINGS.
- The spanish catalog was translated by Raul Fernandez GARCIA
- The swedish catalog was translated by Bernt AHLBACK
- The norvegian catalog was translated by Jorn INNSET
-
- 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
-
- You can give an icon as an argument, by the habitual method. This icon may
- be a file or a volume icon. Otherwise, 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 !
-
- All edit windows are declared as "AppWindow", this means that if you
- drop a icon on an edit window, a new window will be opened for editing the
- corresponding file or volume.
-
- 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.
-
- Help...
- Displays cursor keys usage with CTRL and SHIFT.
-
- 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
-
- 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
- % remainder 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 reads the ExecBase structure to know you
- memory configuration. Only memory areas defined in memory management lists
- may be edited. Except when searching, these areas are considered as
- adjacent, and AZap will automatically jump 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 will try to recognize the type of the device you edit. Some
- operations ("next block", "parent block" and "root block", see
- "The_Edit_menu" section) are disabled for 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 fully in C language, and was developped on an
- Amiga 3000 UNIX-1 (10 Mb RAM, internal HD disk drive, two internal hard
- disks of 100 Mb and 160Mb, 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.
-
- v2.12 02-Oct-93, 44216 bytes
- o Several bug fixed in proportionnal gadget handling: divide by zero
- when file size was smaller than 512 bytes, knob filling all
- container when file size was 2 blocks, etc...
-
- v2.13 30-Oct-93, 44332 bytes
- o You can give an icon as an argument when calling the program from
- the Workbench
-
- v2.14 26-Dec-93, 42776 bytes
- o Handle stressed letters (they are now considered as "printable"
- characters)
- o The "search next" function starts after the last string found
- o Compiled with SAS/C 6.50
-
- v2.20 17-Apr-94, 43168 bytes
- o Add edit windows are now "AppWindow", so they support icon
- dropping
- o Compiled with SAS/C 6.51
-
- v2.21 21-May-94, 43168 bytes
- o Slight changes to interface, so the program can (at last !) work
- on a 640x200 screen
-