AAL77 Hamming Code and Page Parity Checker

This program checks the Hamming code and page parities of the raw Flight Data Recorder (FDR commonly called "black box") file for American Airlines Flight 77 (AAL77) included by the US National Transport Safety Board (NTSB) on CDROMs provided in response to FOIA (Freedom of Information Act) requests for information regarding the events of September 11th 2001. Incorrect Hamming codes and page parities indicate data that has either not been recorded correctly or not recorded completely or has been corrupted after it has been recorded.

There are only two pages where the Hamming code and page parity shows as being incorrect. It appears to me that this is because these pages were not completely recorded.

The program
generates a Comma Separated Value (CSV) file containing one row of information for each 128 byte page of the file. The first line of the CSV file contains the parameter names and it can be opened by various programs including Microsoft Access or text editors.

You can download the output file generated by the program from here.

Information about the format in which the FDR records the data can be found in this post and in figure 4.2-2 of this document.

The parameters in the output file are as follows:

File Offset
This hex value is the offset in bytes of the beginning of the page from the beginning of the file.

Page Type
This value is "Header" for the first two pages in each 64 kilobyte block where headers are stored and "Flight Data" for all other pages. Only flight data pages have Hamming codes and page parities.

Erased Page
This value is "Erased" for pages where every bit is 1 and "Filled" otherwise.

Hamming Code and Page Parity Correct
This value is "Correct" for pages where the calculated Hamming code and page parity match what is recorded in the file and "Incorrect" otherwise. Pages marked "Incorrect" have either not been recorded correctly or not recorded completely or have been corrupted after they have been recorded.

Calculated Hamming Code and Page Parity
This hex value is the Hamming code calculated from the first 1013 bits in the page combined with the page parity calculated from the first 1023 bits in the page.

File Hamming Code and Page Parity
This hex value is the Hamming code and page parity recorded in the page. The Hamming Code and Page Parity Correct value is determined by whether this value matches the Calculated Hamming Code and Page Parity value.


You can download the C# source code of the program. I used Microsoft Visual C# 2005 Express Edition to create it. You can look at the .cs source files using any text editor, and you can download the Microsoft Visual C# 2008 Express Edition from Microsoft to compile it. Alternatively, you may be able to get a DVD with the Visual Studio Express Editions from your local Microsoft sales office. I have not actually checked that it does compile with the 2008 Edition.

As I am providing this program free of charge, it is provided as is.

I take no responsibility for what the program does or doesn't do.

However, you can email feedback to me (Warren Stutt).

You will need to download a copy of the FDR file American 77.fdr. You can download a copy from here. You can also get an ISO image of the entire CDROM that I received in response to my FOIA request which includes the FDR file from here.

A Change Log detailing the changes in different versions is available here.

Back to Warren Stutt's Home Page