NIPSTRAN
NIPSTRAN is a program developed by the National Archive and Records Administration (NARA).
Electronic Records and Special Media Division to analyze and extract data from NIPS 360 FFS files.
NIPSTRAN is implemented in C++ using Microsoft Foundation Classes.
Program User Guide
A user guide for NIPSTRAN exists (NIPSTRAN Program User Guide) and instructions on how to use NIPSTRAN as well as a overview of NIPS 360 FFS files.
Note that there were multiple versions of the user guide present in the NIPSTRAN archive available to us. The version included here was originally named IBM Formatted File System Rendering 3-5-2 08-10-14.pdf
. This seems to be the most recent version that, judging by the date in the file name, was updated in 2014 even though the document itself states that last update was made in 2010.
Favorite Quote
The details of NIPS files are too complex and convoluted to detail in this document. The reader is referred to reference NIPS 360 FFS User's Manual - Volume 1: Introduction to File Concepts Appendix A, pages 94 - 136.
--- Section 10.3 - NIPS File Structure
Running NIPSTRAN on Linux
NIPSTRAN can be run on Linux using the WINE emulator.
Notes on what exactly NIPSTRAN reads
What data is read by NIPSTRAN? What data is omitted? Are there any substantial differences to PyNIPS?
Record Key
It does not seem like NIPSTRAN reads the Record Control Group as defined by the Data Control Record. The Record Control Group/Key is still output as it is usually also defined by the +RCN
field.
Element Format Record
Element Format Records are parsed by the function void parse_format_record(bool bDegMinSecs, void* buffer,size_t bytesread)
. The Field Names are as listed in Appendix A of NIPS 360 User Manual Volume 1.
Field Name | Read by NIPSTRAN | Comment |
---|---|---|
Element Name | Yes | |
Element Set Identification | Yes | |
Element Type Identification | Yes | This is a single byte containing 7 flags. The restricted flag (in PyNIPS) is called hiden in NIPSTRAN. |
Element Location | Yes | Called pEleOffset in NIPSTRAN |
Element Length | Yes | Called pEleSize in NIPSTRAN |
Element Mode Specification | Yes | |
Input Subroutine Conversion Name | Yes | |
Output Subroutine Conversion Name | Yes | |
Label Location | Yes | |
Label Lenght | Yes | |
Edit Mask Location | No | |
Edit Mask Length | No | |
Size of Element on Output | No | There seems to be a bug in NIPSTRAN where the size on output XLEN is not read instead the input lenght is used. See line 1070 of NIPS.cpp . |
Location of Field Names | No | If the Element Format Record describes a group there will be a variable number of field names defined in the record. This is somewhat redundant as every field is defined by it's own Element Format Record. NIPSTRAN does not read the field descriptions in the group defining element format record. |
Number of Fields | No |
Variable Set Fields
NIPSTRAN does not handle variable lenght or variable set fields (like PyNIPS):
// No code has been developed to handle varriable lengths
This is a strong indication that variable length and variable set fields are not used in NIPS files.