summaryrefslogtreecommitdiff
path: root/rdoff/README
diff options
context:
space:
mode:
Diffstat (limited to 'rdoff/README')
-rw-r--r--rdoff/README100
1 files changed, 94 insertions, 6 deletions
diff --git a/rdoff/README b/rdoff/README
index bea5ecbe..29f9aa03 100644
--- a/rdoff/README
+++ b/rdoff/README
@@ -1,22 +1,45 @@
-RDOFF Utils v0.2
+RDOFF Utils v0.3
================
The files contained in this directory are the C source code of a set
of tools (and general purpose library files) for the manipulation of
-RDOFF version 1 object files. Here is a brief summary of their usage:
+RDOFF version 2 object files. Note that these programs (with the
+exception of 'rdfdump') will NOT work with version 1 object files. See
+the subdirectory v1 for programs that perform that task.
+
+Note: If you do not have a v1 subdirectory, you may have unpacked the
+ZIP file without specifying the 'restore directory structure' option -
+delete these files, and run your ZIP extracter again with this option
+turned on ('-d' for PKUNZIP).
+
+RDOFF version 1 is no longer really supported, you should be using
+v2 instead now.
+
+There is also a 'Changes' file, which documents the differences between
+RDOFF 1 and 2, and an 'rdoff2.txt' file, with complete documentation for the
+new format.
+
+Here is a brief summary of the programs' usage:
rdfdump
=======
This tool prints a list of the header records in an RDOFF object in
human-readable form, and optionally prints a hex dump of the contents
-of the code and data segments.
+of the segments.
Usage:
rdfdump [-v] filename
The -v flag specifies that the hex dump (see above) should be printed.
+Changes from previous versions:
+
+* rdfdump supports both version 1 and 2 of RDOFF.
+* rdfdump now gives warnings if the RDOFF2 format is violated (it
+ looks for incorrect lengths for header records, and checks the
+ overall length count at the start of the file)
+
ldrdf
=====
@@ -66,19 +89,84 @@ Usage:
Valid commands are:
- c Create the library
+ c Create (or truncate) the library
a Add a module (requires a filename and a name to give the
module, ie 'rdflib a libc.rdl strcpy.rdf strcpy' puts the
file 'strcpy.rdf' into 'libc.rdl', and calls it 'strcpy'.
x Extract (arguments are the opposite to the 'a' command,
ie you'd do 'rdflib x libc.rdl strcpy strcpy.rdf to get
a copy of strcpy.rdf back out again...)
+ t List modules in the library
-Remove and List commands will be added soon (they're already documented
-as existing, but I haven't had time to implement them... if anyone
+A remove command will be added soon (it is already documented
+as existing, but I haven't had time to implement it... if anyone
else wants to do this, they're welcome to. The file format should be
amply documented in the source code... look at 'rdflib.c' and 'rdlib.c',
and the relevant sections of 'ldrdf.c' to see how libraries can be
handled).
+Library functions
+=================
+
+The files 'rdoff.c', 'rdoff.h', 'rdfload.c' and 'rdfload.h' contain
+code which you may find useful. They retain the same interface as
+the previous version, so any code that used them previously should
+still work OK (maybe). 'rdoff.c' contains at the top a line:
+
+#define STRICT_ERRORS
+
+Comment this line out if you wish to use record types other than the
+7 predefined types; it will then not report such records as an error,
+but accept them gracefully, and read them byte for byte into
+a 'generic record' (see the definition of GenericRec in 'rdoff.h').
+
+If you are using these functions to write RDF modules (rather than
+just reading them), then please note the existance of a new function
+'rdfaddsegment(rdf_headerbuf,long)'. This must be called once for
+each segment in your object, to tell the header writing functions
+how long the segment is.
+
+BUGS
+====
+
+This product has recently undergone a major revision, and as such there
+are probably several bugs left over from the testing phase (although the
+previous version had quite a few that have now been fixed!). Could you
+please report any bugs to me at the address below, including the following
+information:
+
+ - A description of the bug
+ - What you think the program should be doing
+ - Which programs you are using
+ - Which operating system you are using, and which C compiler was used to
+ compile the programs (or state that the pre-compiled versions were used).
+ - If appropriate, any of the following:
+ * source code (preferably cut down to a minimum that will still assemble
+ and show the bug)
+ * the output of rdfdump on produced modules (or send the module if the
+ problem is in code generated)
+ * exact descriptions of error messages/symptoms/etc
+
+TODO
+====
+
+There are still various things unimplemented that I would like to add.
+If you want to find out what these are, search near the top of each *.c
+file for a comment containing the word 'TODO'. A brief list is given here:
+
+- Improve the performace of ldrdf (there are several enhancements I can think
+ of that wouldn't be too hard to add)
+- Stop assuming that we're on a little endian machine
+- Make everything work with both formats (?)
+- Add extra functions to ldrdf (strip symbols/keep symbol list)
+- Check for more bugs
+
+One last thing I have to say: good luck! Whatever it is that you want to use
+RDOFF for, I hope its a success. People out there are using it for many
+diverse applications, from operating system boot-loaders to loadable modules
+in games. Whatever your application is, I hope that it works, and that you
+have a good time writing it.
+
+
+
Julian Hall <jules@earthcorp.com>