Digifusion FVRT100/145/150/200 Tweaking
!! WARNING !!
All files and advice on this site are provided in
good faith,
but you use them at your own risk.
Nothing provided here comes with any warranty or guarantee.
ST20 Disassembler and Patch Development Utility
NAME
st20dis - disassemble SGS-Thomson ST20 C2/C4 machine code.
SYNOPSIS
st20dis [options] <source filename>
FEATURES
DESCRIPTION
st20dis
is a command-line disassembler for the
SGS-Thomson ST20 C2/C4 instruction set
which includes additional functions to assist with development of patches
to existing binaries.
OPTIONS
-a
Add a brief expanded mnemonic for each opcode to the output.
For example this will append load local pointer
after ldlp
.
-A
Add an expanded mnemonic after each opcode and a more verbose
description. For example this will append
load local pointer - A = &workspace[n], B=A, C=B
after ldlp
.
-b
Briefer output. Don't print address offsets or byte values alongside
the labels and opcodes.
-B <offset>
Break the sub-routine at offset
. This effectively
disables the sub-routine by making it return as soon as it is
called. This can be used to help determine what a sub-routine
actually does. The value is interpreted as hex.
-d [level]
Enable debugging (of st20dis
) at level
-
without an argument level 1 is selected.
-D
Perform object detection only then exit. For testing.
-e <offset|+length>
End disassembly at offset
or after length
bytes. Both values are interpreted as hex.
-H <directory>
Produce HTML output and place the output files in the named directory.
The directory will be created if it does not exist.
-s <offset>
Start disassembly at offset
. The value is interpreted
as hex.
-S <offset>
Disassemble subroutine containing offset
. The value
is interpreted as hex.
-m <file>
-o <file>
Write output to file
(defaults to screen)
-O <offset>
Force disassembly offset to offset
-p <offset>=<byte>
Change the byte at offset
to byte
prior
to disassembling. This option may be used multiple times.
-P <patch filet>
Apply a DigiFusion patch file (.fpt) to the binary.
-q
Supress output of padding bytes used to force 32-bit alignment.
-R
Output all references instead of just the first 16.
-t <device>
Send the final firmware image over a serial device using XMODEM
(UNIX platforms).
-w
Modify the input file with the results of patch operations.
-x
Include in the output the bytes which have been detected as part
of an identifiable object (e.g. an M2V frame). The bytes are
displayed as a hexadecimal dump.
-X
ADDRESS MAP FILES
An address map file is a normal text file which contains one of more lines,
each of which is in one of the following formats:
offset:<offset>
Specify the disassembly offset to use.
object:<offset>:<length>:<3 character tag>
Define a range of bytes as a binary object which should not be
disassembled. used for non-code sections which are not automatically
identified.
string:<offset>:<length>
Define a range of bytes to be a string. Used for strings
which are not automatically detected.
loc:<offset>:<label>
Name a memory location. Usually a subroutine entry point.
A loc
line can be optionally followed by a block of text
indented with tabs which is included in the disassembly output above the
referenced subroutine. This can be used to include function headers or
other comments in the disassembly.
bin:<offset>:<length>:<label>
Treat a section of memory as a binary sequence and show
a hex dump instead of attempting to disassemble.