NDF and RTF - Hashed Names
NDF and RTF - Hashed Names
The information that follows pertains to: 5DX and TDW (Test Development Workstation) Version: 6.x - 8.x
There have been many questions about hashed directory names. This is a brief explanation of why they are, and how they are generated.
The NDF directory structure of each application consist of a primary directory and one subdirectory for each board on the panel. The files stored in these are the text source files for an application.
The Main directory uses the SUBPANEL_ID name as a base for the hashed name. An example would be:
SUBPANEL_ID: New_Panel_Number_Ten ; would convert to 4JHPH4Y
Why does the 5DX use hash names for applications?
The hashed name for the NDF Panel directory is 4JHPH4Y. Notice that New_Panel_Number_Ten consists of more than eight characters, but 4JHPH4Y consists of eight or less characters (seven in this case.) The Panel name is not case sensitive. "New_Panel_Number_Ten" or "NEW_PANEL_NUMBER_TEN" will be converted to the same hash name.
The old DOS naming convention limited us to a maximum of eight characters. If the panel name was more than eight, we either had to truncate the name or use it as a base for some hash function. We chose to use a hash function. That way, New_Panel_Number_Ten and New_Panel_Number_One would have different hashed names. The function is set up in such a way that it is extremely unlikely that any two applications will have the same hashed name. If we simply truncate the Panel names, these two would have been the same, "New_Pane".
The board names are determined the same way. The name associated with the BOARD_ID is sent through the hash function to form the subdirectory name. Each subdirectory holds the text source data for each board on the panel, and therefore the name of each subdirectory is linked with the board name.
Even though the Series II uses Windows NT, the naming convention remains the same as it was in DOS. It will probably remain for some time. Once the 5DX is completely converted to the NT environment, and there is no longer any need for eight character name directories, we will evaluate the need to continue using the hashed names. But for compatibility purposes, we will remain with the max eight character naming convention for the foreseeable future.
An easy way to find out exactly what string was used in the hash function is to look at the contents of the DIR_ID.DAT file. Each hashed directory will contain a DIR_ID.DAT file. It contains the directory name before it was hashed.
If you are interested in seeing the hash function in action, you can do the following.
There is a program on every 5DX and TDW called HASHFUNC.EXE. It will take a string of text characters of almost any length and convert it to an eight (or less) character string. From a DOS prompt, type "HASHFUNC string". The string will be converted to a hash name. You can use a string of almost any length and any 5DX-legal characters that can be used to form a board name.
The Hash function only goes one way. That is, you can create a hash name from any string, but there is no way to recover the string from the hashed name. There is no Un-Hash function.
The RTF directory names are different. They still use HASHFUNC.EXE to create the names. But the source string is a little more complex. The Main Panel directory still is derived from the SUBPANEL_ID, so it has the same name as the NDF Main Panel directory. One of the Subdirectories is derived from the Primary board BOARD_ID, so it has the same as one of the NDF subdirectories. The main panel directory contains alignment data, translation log, and other panel specific data.
One subdirectory contains the threshold data for the entire panel. The name of this directory is the hashed name of PRIMARY board. It does NOT, however, contain information relating just to the primary board.
The other subdirectory contains the rest of the run-time code for the entire panel. The string used to create the hashed name is more complex. It is NOT simply the hashed name of the secondary board. The string for a two board panel is made up of the following pieces of information extracted from the Panel.NDF file.
1. Board A name,
2. Board A rotation,
3. Board A side,
4. Board B name,
5. Board B rotation,
6. The difference between side A's X-dimension and side B's X-dimension,
7. The difference between side A's Y-dimension and side B's Y-dimension.
This string might be different if there is only one board side on the panel, or if there are multiple board types on the panel. If there is only one side, the first three parts of the string is all that is used.
As before, the strings used to create the RTF directory names are stored in the DIR_ID.DAT file.
Every main RTF directory will have at least two subdirectories, even if the panel has only one side. It is possible to have more than two subdirectories. The extras were created when one or more of the naming items listed above changed in the Panel.NDF file. Anything that changes the number of views or their contents will create a new RTF subdirectory, as well. There is a good chance that the out-of-date extra directories will never be used again. You can delete them if you can determine which ones are old. Generally, the file dates will give you a good indication.
The RTF files are created upon successful completion of a TRANSLATE (Series I) or COMPILE (Series II.) These remain in effect until another successful compile (translate.) Therefore, no changes to the NDF files will have any effect until they are compiled (translated.)
Tips and Tricks
* The CS utility
When navigating around either the NDF or RTF data structures from a DOS prompt, the "CS" utility will help you switch to the desired subdirectory. It reads the contents of the DIR_ID.DAT file for all subdirectories and gives you a list from which to chose. It also works with non-hashed directories. It will present you with the straight directory name. It is handy in getting to a deeply imbedded subdirectory from a DOS command line.
To use, type CS at a DOS command prompt, and use the arrow keys to select the desired directory. Hit ENTER and the computer will change to the selected directory.