From 7501fe1209b07d18977d8a9249036f2f3a34014d Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 10 Jan 2016 22:30:17 -0800 Subject: [PATCH] Start describing legacy detail members. --- spv-file-format.texi | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/spv-file-format.texi b/spv-file-format.texi index c1d5d07123..223b2ef90f 100644 --- a/spv-file-format.texi +++ b/spv-file-format.texi @@ -174,7 +174,7 @@ describes what it labels, often by naming the statistical procedure that was executed, e.g.@: ``Frequencies'' or ``T-Test''. Labels are often very generic, especially within a @code{container}, e.g.@: ``Title'' or ``Warnings'' or ``Notes''. Label text is localized -according to the output language, e.g. in Italian a frequency table +according to the output language, e.g.@: in Italian a frequency table procedure is labeled ``Frequenze''. The corpus contains one example of an empty label, one that contains @@ -817,3 +817,45 @@ English-language version of the localized format string in the The @code{style}, if present, changes the style for this individual @code{value}. @end itemize + +@node SPV Legacy Detail Member Binary Format +@subsection SPV Legacy Detail Member Binary Format + +A legacy detail member's binary file has a much simpler format than +the light member binary format. + +@example +legacy-member := 00 byte[version] int16[n-sources] int32[file-size] + metadata*[n-sources] data*[n-sources] +@end example + +@code{version} is a version number that affects the interpretation of +some of the other data in the member. Versions 0xaf and 0xb0 are +known. We will refer to ``version 0xaf'' and ``version 0xb0'' members +later on. + +A legacy member consists of @code{n-sources} data sources, each of +which has @code{metadata} and @code{data}. + +@code{file-size} is the size of the file, in bytes. + +@example +metadata := int32[per-series] int32[n-series] int32[offset] source-name +source-name := byte*[32] /* @r{version 0xaf} */ +source-name := byte*[64] int32 /* @r{version 0xb0} */ +@end example + +A data source consists of @code{n-series} series of data, with +@code{per-series} data items per series. Depending on the version, +@code{source-name} is a 32- or 64-byte string padded on the right with +zero bytes. The names that appear in the corpus are very generic, +usually @code{tableData} or @code{source0}. The @code{offset} is the +offset, in bytes, from the beginning of the file to the start of this +data source's @code{data}. + +The meaning of the number in version 0xb0 @code{source-name} is +unknown. + +@example + +@end example -- 2.30.2