How about breaking up the sections a bit, like HTML <head><body> sections?
Putting card-catalog information up top in it's own section would speed
indexing and searches. Like this:
<archive image file version="1.0">
<catalog>
<definitions>
a place to put whatever relevant information is needed about the format or
achive
or your favorite poem or joke
</defintions>
<archiver>Pete Smith</archiver>
<method>ROM Dumper V4.12</method>
<recdate>02004-02-02</recdate>
<title>Omega Race</title>
<author>Midway</author>
<platform>
<mfg>Commodore</mfg>
<system>VIC-20</system>
</platform>
<archivetype>
<fmtcategory>ROM</fmtcategory>
<fmttype>Game Cartridge</fmttype>
</archivetype>
</catalog>
<format>
<default-sector-data value="$AA"/>
....
</format>
<data>
....etc
----- Original Message -----
From: "Steve Thatcher" <melamy(a)earthlink.net>
To: <cctalk(a)classiccmp.org>
Sent: Thursday, August 12, 2004 7:11 AM
Subject: archive file format exmaple
here is a "crude" example of what I was
talking about.
try:
<archive image file version="1.0">
<definitions>
a place to put whatever relevant information is needed about the format
or
achive
or your favorite poem or joke
</defintions>
<target system>Tandy Model 100</target system>
<author>Ian Blindly</author>
<media>
<format>5.25" floppy</format>
<default-sector-data value="$AA"/>
<encoding>MFM? RLL? something ... </encoding>
<tracks>35</tracks>
<heads>1</heads>
<sectors size="256">18</sectors>
<wordsize>8</wordsize>
</media>
<datamap>
<head physical="0">
<track physical="0">
<sector logical="1" physical="4" datablock="DB1"
dataitemid="SB1" />
<sector logical="2" physical="8" datablock="DB2"
dataitemid="SB1"/>
<sector logical="3" physical="12" fill="$00"
/>
<sector logical="4" physical="16" fill="$00"
/>
...
</track>
<track physical="1">
<sector logical="1" physical="4" fill="$FF"
/>
<sector logical="9" physical="12"
datablock="DB3"
dataitemid="SB1"/>
</track>
<track physical="22" datablock="DB3"
dataitemid="SB2"
/>
</head>
</datamap>
<datablock id="DB1" type="boot">
<dataitem id="SB1" encoding="HEX"
crc="1234">456789ABCDEF...</dataitem>
<dataitem id="SB2"
encoding="HEX" crc="2341">1234567890A...</dataitem>
<dataitem id="SB3" encoding="HEX"
crc="3412">890ABCDEF01245...</dataitem>
<dataitem id="SB4"
encoding="HEX"
crc="4123">456789ABCDEF...</dataitem>
</datablock>
<datablock id="DB2" type="OS">
<dataitem id="SB1" encoding="HEX"
crc="1234">456789ABCDEF...</dataitem>
<dataitem id="SB2"
encoding="HEX" crc="2341">1234567890A...</dataitem>
<dataitem id="SB3" encoding="HEX"
crc="3412">890ABCDEF01245...</dataitem>
<dataitem id="SB4"
encoding="HEX"
crc="4123">456789ABCDEF...</dataitem>
</datablock>
<datablock id="DB3" type="file" name="DUMP.ASM">
<dataitem id="SB1" encoding="HEX"
crc="1234">456789ABCDEF...</dataitem>
<dataitem id="SB2"
encoding="HEX" crc="2341">1234567890A...</dataitem>
<dataitem id="SB3" encoding="HEX"
crc="3412">890ABCDEF01245...</dataitem>
<dataitem id="SB4"
encoding="HEX"
crc="4123">456789ABCDEF...</dataitem>
</datablock>
</archive image file>
please don't get hung up on names, etc, The basic structure is what I have
been
talking about. A utility can go into the archive file,
find a <datablock>,
know what it is and extract it without having to know anything about the
OS.
Another
utility can read the media, datamap, and datablocks to
re-create tracks in
memory
to then write out to disk. There was earlier talk
about years from now
being able
to still re-create disks. I think that is a fine
ambition, but that still
requires
all the hardware and intimate OS knowledge to still be
around. My idea was
to at
least be able to extract the data without having to
have ANY knowledge of
the OS.
best regards, Steve Thatcher