MARS GLOBAL SURVEYOR

Mars Orbiter Laser Altimeter

MOLA AGGREGATED EXPERIMENT DATA RECORD
SOFTWARE INTERFACE SPECIFICATION
(MOLA AEDR SIS)

Version 2.2
October 14, 1999

NASA
Goddard Space Flight Center
Greenbelt MD 20771

 

Submitted: _______________________________
Gregory A. Neumann
MOLA Science Team
____________
Date
Concurred: _______________________________
Maria Zuber
MOLA Deputy Principal Investigator
____________
Date
Approved: _______________________________
David E. Smith
MOLA Principal Investigator
____________
Date

 

Document and Change Control Log

Date

Version

Section

Status

03/31/97

1.0

all

Released for MGS

02/27/98

2.0

all

Revised for PDS MGS CD-ROM Sampler

09/24/98

2.1

2.5, Appendices

Revised for PDS MOLA Archive Volume

10/14/99

2.1

1, 3

AEDR aggregated by UTC calendar day; identified by Project orbit number + 10000

 

Section

Table of Contents

Page

1.0

General Description

1

1.1

Purpose

1

1.2

Scope

1

1.3

Applicable Documents

1

1.4

Functional Description

2

1.4.1

Data Source, Destination, and Transfer Method

2

1.4.2

Pertinent Relationships with Other Interfaces

2

1.4.3

Labeling and Identification

2

1.4.4

Orbit Numbering

3

1.4.5

Assumptions and Constraints

3

2.0

Environment

4

2.1

Hardware Characteristics and Limitations

4

2.2

Interface Medium and Characteristics

4

2.3

Input / Output Protocols

4

2.4

Failure Protection, Detection, and Recovery Features

4

2.4.1

Backup Requirements

4

2.4.2

Security and Integrity Measures

4

2.5

End-Of-File (or Medium) Conventions

4

2.6

Utility Programs

4

3.0

Data Flow Characteristics

5

3.1

Operational Characteristics

5

3.1.1

Generation Method and Frequency

5

3.1.2

Time Span of Product

5

3.2

Data Volume

5

3.3

Flow Rate

5

4.0

Detailed Data Object Definition

6

4.1

Structure and Organization Overview

6

4.2

Data Format and Definition

6

4.2.1

Format

6

4.2.2

Externally Declared Structure Templates

6

4.2.3

Data Description

6

 

 

List of Figures

Page

1 AEDR Data Product Structure and Organization

9

 

List of Tables

Page

1 AEDR Science Mode Packet Format

10

2 AEDR Maintenance Mode Packet Format

14

 

List of Appendices

Page

Appendix A AEDR Science Mode Data Dictionary

16

Appendix B AEDR Maintenance Mode Data Dictionary

56

Appendix C.1 AEDR Data Product SFDU Labels and Catalog Header

63

Appendix C.2 Contents of The MOLASCI.FMT File

65

Appendix C.3 Contents of The MOLAMNT.FMT File

81

Appendix C.4 Contents of The MOLASCFR.FMT File

95

Appendix C.5 Contents of The MOLASCCT.FMT File

113

1.0 General Description

The MOLA Science Team is required to create, validate, and archive the MOLA standard data products. To define each standard data product, the MOLA Science Team is required to provide a Software Interface Specification (SIS). The SIS shall describe the data product contents and define the record and data format. The Planetary Data System (PDS) Geosciences Node has agreed to archive the MOLA standard data products. The MOLA archive volume shall be described in a separate SIS. The MOLA standard science data products are the Aggregated Experiment Data Record—all MOLA raw data aggregated by calendar day; Precision Experiment Data Record—MOLA science data processed into profiles with precision orbit locations added; Any Experiment Gridded Data Record—MOLA gridded data in 2 different densities. This SIS shall define the Aggregated Experiment Data Record (AEDR) Data Product.

1.1 Purpose

This document describes the format and contents of the AEDR data product. This includes a description of the required SFDU format and the format and contents of the AEDR.

1.2 Scope

This SIS describes the format of the SFDU labels and headers and the AEDR to the bit level. The AEDR file is an aggregation of the MOLA telemetry packets (Experiment Data Records) received from the Space Flight Operations Center (SFOC) at the Jet Propulsion Laboratory (JPL). The Experiment Data Records (EDRs) will be produced continuously during instrument operation. The instrument can operate in either science or maintenance mode; data is collected during each mode and stored in the telemetry packets. There are three types of maintenance (or diagnostic) modes that the instrument can be commanded to perform with varying output stored in the packet. Consequently, there are several record formats possible within the AEDR file. The formats of all record types are described in this SIS.

1.3 Applicable Documents

1. DRSE007 Mars Observer Software Interface Specification MOLA Packet Data Record, September 16, 1991, Jet Propulsion Laboratory
2. SFOC0038-05-12-03 SFOC Software Interface Specification SFDUs Generated/Received by TIS, November 30, 1990, Jet Propulsion Laboratory
3. MOLA-672-PL-89.354 Operations Facility Configuration and Control Plan, Version 3.0, January 15, 1992, NASA GSFC WFF
4. SFOC0088-00-04-02 SFOC User's Guide for Workstation End Users, Volume 2: Accessing Data, Version 15 (Review Copy Only)
5. SFOC0038-00-TBD-01 SFOC-2-CDB-Any-Catalog 2, Draft, February 6, 1990
6. MOLA-972-SP-92.213 MOLA CD-ROM Standard Product Archive Collection Software Interface Specification, Version 1.0, S. Slavney, R. E. Arvidson, Washington University, August 11, 1993

1.4 Functional Description

1.4.1 Data Source, Destination, and Transfer Method

The source of the telemetry packet data is SFOC through a dedicated NASA Communications (NASCOM) link to the MOLA Science Operations Planning Computer (SOPC). The packets will be aggregated by calendar day using the SFOC-provided Browser tool and stored as an AEDR file on the SOPC. Refer to Applicable Document #3 for a description of the SOPC. The Browser tool is described in Applicable Document #4. The AEDR files will be transferred to the MOLA operations file system via FTP (standard UNIX File Transfer Protocol). From the MOLA operations file system, the AEDR file is available for retrieval by the science team via FTP and for input to the processor to create the PEDR Data Product. The AEDR Data Product will be created by prefixing the required SFDU and PDS labeling to the AEDR file. After product verification by the MOLA Science Team, the AEDR data product shall be transferred to the SOPC for subsequent delivery to the Planetary Data SystemÕs (PDS) Geosciences Node using FTP. The PDS Geosciences Node will archive the AEDR Data Products to CD-ROM and make the products available to the science community.

1.4.2 Pertinent Relationships with Other Interfaces

Since the AEDR file is an aggregation of the MOLA Experiment Data Records (EDR), any changes to the EDR may directly affect the AEDR file.

The Precision Experiment Data Record (PEDR) Data Product is derived from the AEDR file. Therefore, any changes to the AEDR file may affect the software creating the PEDR Data Product.

1.4.3 Labeling and Identification

The AEDR data product shall be labeled according to the standards of the MGS Project and the PDS. SFDU label and header definitions and descriptions are contained in Applicable Document #2.

The data set id for the MOLA AEDR data product is MO-M-MOLA-2-AEDR-L0-V1.0. This is the data set id that was provided to the PDB and the PDS. This id describes the overall AEDR data product. The version number is incremented should the AEDR Data Product format change.

The file naming convention for each AEDR data product produced is AA#####a.B.

Where:

A

represents the MOLA instrument, an altimeter

A

is the data product, AEDR, identifier

#####

is the number of the first orbit in the product, with leading zeros (see below)

a

is the product edition number

B

indicates the file is fixed point, binary.

1.4.4 Orbit Numbering

On March 9, 1999, the MGS spacecraft entered the Mapping Phase of the mission after spending nearly two years in the Orbit Insertion Phase. The MGS Project reset the orbit count to 1 at the beginning of the Mapping Phase, at the descending equator crossing of actual orbit 1683. Since MOLA had already generated many products during Orbit Insertion with product IDs based on the orbit number, there was a potential problem that the product ID would not be unique if MOLA continued to use the Project orbit number. To ensure a unique product ID, MOLA Mapping Phase products are therefore identified by the Project orbit number plus 10000. For example, an AEDR product containing data acquired starting in Mapping Phase orbit 24 is identified as AA10024a.B.

1.4.5 Assumptions and Constraints

1. The AEDR product contains all MOLA telemetry packets.

2. Each AEDR retains the CHDO information contained in the corresponding EDR.

3. The AEDR product will contain one day's worth of data.

4. Each record will contain one packet of MOLA data.

5. SFDU headers and labels will be attached to the AEDR file.

6. The EDR format will be maintained in the AEDR.

2.0 Environment

2.1 Hardware Characteristics and Limitations

Not applicable.

2.2 Interface Medium and Characteristics

For the creation and archival of the AEDR file, several interfaces will be necessary: SFOC-to-SOPC transfer of telemetry packets (EDRs) via NASCOM link. The AEDR file shall be transferred to the MOLA operations file system for further processing to create the PEDR Data Product and for Science Team availability.

The AEDR Data Product shall be distributed to the PDS Geosciences Node for archival. The MOLA CD-ROM Archive Volume SIS, Applicable Document #6 for the CD-ROM structure and data access information.

The interface media for file transfer and distribution are described in detail in Applicable Document #3.

2.3 Input / Output Protocols

Not applicable.

2.4 Failure Protection, Detection, and Recovery Features

2.4.1 Backup Requirements

The AEDR data product will be backed up on magnetic media on the MOLA operations file system at GSFC. The AEDR data product will be archived by the PDS to CD-ROM. The MGS Project Data Base will be available as an additional backup location.

2.4.2 Security and Integrity Measures

Refer to Applicable Document #3 for a description of the MOLA system security and integrity plan.

2.5 End-Of-File (or Medium) Conventions

The AEDR Data Product shall be written as a standard UNIX flat, sequential file. The end of an AEDR Data Product will be detected by the end-of-file marker. In the FORTRAN programming language, the file may be opened with the keywords ACCESS='DIRECT', RECL=1230 (bytes) and end-of-file detected in a READ statement with the ERR= keyword.

2.6 Utility Programs

The following utilities are provided by SFOC and will be used to check the AEDR files for completeness and validity:

  1. Browser
  2. DECOM
  3. DMD

Refer to Applicable Document #4 for the description and the functions of these utilities.

3.0 Data Flow Characteristics

3.1 Operational Characteristics

3.1.1 Generation Method and Frequency

The process to create the AEDR data product is performed as part of MOLA mission operations. The telemetry packets will be aggregated on a UTC calendar day basis. There will be approximately 12 orbits per day with each orbit taking 117 minutes 39 seconds to complete. The mapping mission will last for one Martian year which is 687 Earth days.

3.1.2 Time Span of Product

The AEDR data products will be produced continuously for the life of mission (687 days). Each product will contain approximately 86400 seconds of data.

3.2 Data Volume

The daily volume of telemetry data is about 7.6 Mbytes or approximately 6170 packets per day.

3.3 Flow Rate

Nominally, the AEDR Data Product is created on the SOPC and transferred to the MOLA operations file system once per day for the previous 24 hours of data. Since MOLA operations will be performed during a standard five day work week, on Mondays (or the first day of the work week) the processing will need to include the data collected since the last day of the previous work week.

4.0 Detailed Data Object Definition

4.1 Structure and Organization Overview

The AEDR products will be built to include the required SFDU structure. See Applicable Document #6 for a definition of SFDUs and their structure.

4.2 Data Format and Definition

4.2.1 Format

The AEDR product will have SFDU labels and headers, as required by Mars Global Surveyor. These will be attached to the AEDR file which will contain one orbit of AEDRs.

4.2.2 Externally Declared Structure Templates

Format files describing the record format of the AEDR data product shall be provided to the Planetary Data System. The format files are referenced by the AEDR data product label. The format files are MOLASCI.FMT and MOLAMNT.FMT. These files are provided in Appendix C.2 and Appendix C.3. Additionally, MOLASCI.FMT references the format files MOLASCFR.FMT and MOLASCCT.FMT to further describe the AEDR format. These files are provided in Appendix C.4 and Appendix C.5.

4.2.3 Data Description

The product will be formatted as a Standard Formatted Data Unit (SFDU). This means the AEDR data shall be wrapped in a series of labels (the SFDU Primary Label, the K-Header, and the I-class Label) describing the data and supplying required information to the Project Database. An orbit of AEDRs shall make up the data portion of the file. Figure 1 depicts the overall Product format. The sections below describe each label and the data records in detail. The labels were created using Applicable Document #5 and Applicable Document #6 as guidelines. Label formats are provided in Appendix C.

4.2.3.1 Primary SFDU Label

The Primary SFDU Label, also known as the aggregation label, wraps and therefore, delimits the entire product. The Primary Label is 20 bytes long and shall have the following format for the AEDR Data Product. The start label is

CCSD3ZF0000100000001

where:

CCSD

is the Control Authority ID

3

is the SFDU version ID

Z

is the class ID for primary labels

F

is the SFDU delimiter type, delimits product by total EOFs

0

is a spare octet

0001

is the Data Descriptive Package ID

00000001

is the delimiter value field, Total EOF Indicator Count (ASCII)

4.2.3.2 K-Header

The K-header is made up of a label and catalog data objects that are to be stored in the Mars Global Surveyor PDB. The start label has the following form:

NJPL3KS0PDSX$$INFO$$

where:

NJPL

is the Control Authority ID

3

is the SFDU version ID

K

is the class ID for catalog data object labels

S

is the SFDU delimiter type, start marker

0

is a spare octet

PDSX

is the Data Descriptive Package ID

$$INFO$$

is the delimiter value for this label

After the label, shall be the catalog entries required by the Project. These shall be in the KEYWORD=VALUE format. The catalog entries (keywords) that are required by the Project are

PDS_VERSION_ID UPLOAD_ID
RECORD_TYPE PRODUCT_RELEASE_DATE
FILE_RECORDS START_TIME
RECORD_BYTES STOP_TIME
LABEL_RECORDS SPACECRAFT_CLOCK_START_COUNT
FILE_NAME SPACECRAFT_CLOCK_STOP_COUNT
DATA_SET_ID PRODUCT_CREATION_TIME
PRODUCT_ID MISSION_PHASE_NAME
SPACECRAFT_NAME ORBIT_NUMBER
INSTRUMENT_ID PRODUCER_ID
INSTRUMENT_NAME PRODUCER_FULL_NAME
TARGET_NAME PRODUCER_INSTITUTION_NAME
SOFTWARE_NAME DESCRIPTION

Example catalog entries and their values are provided in Appendix C.1.

The catalog entries will be delimited by the K-header end label; it has the following form:

CCSD$$MARKER$$INFO$$

4.2.3.3 I-class Label

The I-class Label precedes the actual data in the SFDU. This label is also known as the data object label or the tertiary header. The I-class label is registered individually with the JPL Control Authority and bears a unique DDPID. The start label has the following format

NJPL3IF0000000000001

where:

NJPL

is the Control Authority ID

3

is the SFDU version ID

I

is the class ID for data labels

F

is the SFDU delimiter type, delimits by total EOFs

0

is a spare octet

0000

is the Data Descriptive Package ID

00000001

is the delimiter value field, Total EOF Indicator Count (ASCII)

4.2.3.4 Data Format

The data is written sequentially. Each record will contain one packet of MOLA telemetry data— either science or maintenance mode and its corresponding CHDO header. The MOLA telemetry data is described in Applicable Document #1. This document also defines the CHDO header format. Byte 11 in each AEDR indicates the mode for the packet: 0 indicates normal science mode; 1, 2, or 3 indicate maintenance (diagnostic) mode. To date, values 4 and above have not been assigned. Table 1 and Table 2 describe the record formats for the Aggregated Experiment Data Record (AEDR) MOLA Science Mode Packet and the Aggregated Experiment Data Record (AEDR) MOLA Maintenance Mode Packet. The tables define the record format to the bit level. The tables define the starting byte for each data element in the record. Refer to the AEDR data dictionaries in Appendix A and Appendix B for detailed descriptions and formats of the data elements in each record.


FIGURES

PRIMARY SFDU START LABEL

K-HEADER START LABEL

CATALOG ENTRIES:
KEYWORD=VALUE

K-HEADER END LABEL

I-CLASS START LABEL

1 DAY
AEDR
DATA

Figure 1: AEDR Data Product Structure and Organization


TABLES

Table 1: AEDR Science Mode Packet Format

Start
Byte

Data Elements

Length
(bits)

Length
(bytes)

0

CHDO header

1200

150

150

Source primary header

48

6

156

Time code words

40

5

161

Packet Type (0 = normal science)

Mux

Chan

8

1

162

Computer Memory temperature

A

2

8

1

163

Computer CPU temperature

A

1

8

1

164

Power Supply temperature

A

4

8

1

165

Computer I/O temperature

A

3

8

1

166

LASER array heat sink temperature

A

6

8

1

167

LASER diode array drive electronics temperature

A

5

8

1

168

Optical Test Source (OTS) LED temperature

A

8

8

1

169

100 MHz Oscillator temperature

A

7

8

1

170

Start Detector temperature

A

10

8

1

171

Outside Detector Box temperature

A

9

8

1

172

LASER Radiator Opposite Output port temperature

A

12

8

1

173

LASER Radiator Output port temperature

A

11

8

1

174

Interface Plate near Òhot footÓ temperature

A

14

8

1

175

Radiation sheet transition temperature

A

13

8

1

176

Electronics Box top near S/C thermistor temperature

A

16

8

1

177

LASER Box near Òhot footÓ temperature

A

15

8

1

178

28 Volt monitor

B

2

8

1

179

Reference Voltage monitor

B

1

8

1

180

+12 Volt voltage monitor

B

4

8

1

181

+24 Volt voltage monitor

B

3

8

1

182

+5 Volt voltage monitor

B

6

8

1

183

-12 Volt voltage monitor

B

5

8

1

184

LASER / thermal current monitor

B

8

8

1

185

-5 Volt voltage monitor

B

7

8

1

186

Power Supply current monitor

B

10

8

1

187

High Voltage current monitor

B

9

8

1

188

-12 Volt current monitor

B

12

8

1

189

+12 Volt current monitor

B

11

8

1

190

-5 Volt current monitor

B

14

8

1

191

+5 Volt current monitor

B

13

8

1

192

Current STATUS register value (SEU counter)

8

1

193

Software Version Number (4.4 bit format)

8

1

194

Flag word (2 KB RAM block test)

16

2

196

Status Flags (EFLAG1(16 bits),EFLAG2(16 bits))

32

4

200

Software validity checksum

16

2

202

Received command count (modulo 8 bits)

8

1

203

Command error count (modulo 8 bits)

8

1

204

Transmitter threshold setting (XMITDA)

8

1

205

Range Tracking Status (frame #7654321) (1=tracking, 0=acquisition, MSB=OTS)

8

1

206

Range gate tracker array (73.728 km starting at HSTART)

384

48

254

HSTART value for HISTOGRAM dump

16

2

256

Valid commands received count (modulo 16 bits)

16

2

258

Memory dump segment (16 Kbytes/16 bytes = 1024 packets ~= 4 hours)

128

16

274

Command echo

128

16

290

Packet validity checksum

16

2

292

Frame 1 / Shot 1 Range to surface (TIU counts)

16

2

294

1st channel received pulse energy (counts)

8

1

295

1st channel received Channel number / Pulse width

8

1

296

Shot 2

32

4

300

Shot 3

32

4

304

Shot 4

32

4

308

Shot 5

32

4

312

Shot 6

32

4

316

Shot 7

32

4

320

Shot 8

32

4

324

Shot 9

32

4

328

Shot 10

32

4

332

Shot 11

32

4

336

Shot 12

32

4

340

Shot 13

32

4

344

Shot 14

32

4

348

Shot 15

32

4

352

Shot 16

32

4

356

Shot 17

32

4

360

Shot 18

32

4

364

Shot 19

32

4

368

Shot 20

32

4

372

Shot 2 LASER transmitter power

8

1

373

Shot 1 LASER transmitter power

8

1

374

Shot 4 LASER transmitter power

8

1

375

Shot 3 LASER transmitter power

8

1

376

Shot 6 LASER transmitter power

8

1

377

Shot 5 LASER transmitter power

8

1

378

Shot 8 LASER transmitter power

8

1

379

Shot 7 LASER transmitter power

8

1

380

Shot 10 LASER transmitter power

8

1

381

Shot 9 LASER transmitter power

8

1

382

Shot 12 LASER transmitter power

8

1

383

Shot 11 LASER transmitter power

8

1

384

Shot 14 LASER transmitter power

8

1

385

Shot 13 LASER transmitter power

8

1

386

Shot 16 LASER transmitter power

8

1

387

Shot 15 LASER transmitter power

8

1

388

Shot 18 LASER transmitter power

8

1

389

Shot 17 LASER transmitter power

8

1

390

Shot 20 LASER transmitter power

8

1

391

Shot 19 LASER transmitter power

8

1

392

Shot 3 Encoder start and stop bits

4

0.5

392.5

Shot 4 Encoder start and stop bits

4

0.5

393

Shot 1 Encoder start and stop bits

4

0.5

393.5

Shot 2 Encoder start and stop bits

4

0.5

394

Shot 7 Encoder start and stop bits

4

0.5

394.5

Shot 8 Encoder start and stop bits

4

0.5

395

Shot 5 Encoder start and stop bits

4

0.5

395.5

Shot 6 Encoder start and stop bits

4

0.5

396

Shot 11 Encoder start and stop bits

4

0.5

396.5

Shot 12 Encoder start and stop bits

4

0.5

397

Shot 9 Encoder start and stop bits

4

0.5

397.5

Shot 10 Encoder start and stop bits

4

0.5

398

Shot 15 Encoder start and stop bits

4

0.5

398.5

Shot 16 Encoder start and stop bits

4

0.5

399

Shot 13 Encoder start and stop bits

4

0.5

399.5

Shot 14 Encoder start and stop bits

4

0.5

400

Shot 19 Encoder start and stop bits

4

0.5

400.5

Shot 20 Encoder start and stop bits

4

0.5

401

Shot 17 Encoder start and stop bits

4

0.5

401.5

Shot 18 Encoder start and stop bits

4

0.5

402

TIU upper range bits

4

0.5

402.5

Receiver channel mask status (ALTMOD)

4

0.5

403

Algorithm status (HIT_CNT)

8

1

404

Channel 1 1st half-frame threshold setting

8

1

405

Channel 2 1st half-frame threshold setting

8

1

406

Channel 3 1st half-frame threshold setting

8

1

407

Channel 4 1st half-frame threshold setting

8

1

408

Channel 1 2nd half-frame threshold setting

8

1

409

Channel 2 2nd half-frame threshold setting

8

1

410

Channel 3 2nd half-frame threshold setting

8

1

411

Channel 4 2nd half-frame threshold setting

8

1

412

Range delay

16

2

414

Range width

16

2

416

Algorithm status (MIN_HITS)

8

1

417

Software status (frame counter in upper 4 bits, trigger channel in lower 4 bits)

8

1

418

Channel 1 1st half-frame background count (PLog base 2 5.3 bit format)

8

1

419

Channel 2 1st half-frame background count

8

1

420

Channel 3 1st half-frame background count

8

1

421

Channel 4 1st half-frame background count

8

1

422

Channel 1 2nd half-frame background count

8

1

423

Channel 2 2nd half-frame background count

8

1

424

Channel 3 2nd half-frame background count

8

1

425

Channel 4 2nd half-frame background count

8

1

426

Frame 2

1072

134

560

Frame 3

1072

134

694

Frame 4

1072

134

828

Frame 5

1072

134

962

Frame 6

1072

134

1096

Frame 7

1072

134

1230

TOTALS

9840

1230

 

Table 2: AEDR Maintenance Mode Packet Format

Start
Byte

Data Elements

Length
(bits)

Length
(bytes)

0

CHDO

1200

150

150

Source primary header

48

6

156

Time code words

40

5

161

Packet type (1 = status packet, 2 = memory dump, 3 = noise count)

8

1

162

Comp. Memory Temperature

8

1

163

Comp. CPU temp.

8

1

164

Power Supply temp.

8

1

165

Comp. I/O temp.

8

1

166

LASER array sink heat temp.

8

1

167

LASER diode array drive temp.

8

1

168

Optical Test Source (OTS) LED temp.

8

1

169

100 MHz Osc. temp.

8

1

170

Start Detector temp.

8

1

171

Outside Detector box temp.

8

1

172

LASER Radiator Opposite Output port temp.

8

1

173

LASER Radiator Output port temp.

8

1

174

I/F Plate near Òhot footÓ temp.

8

1

175

Radiation sheet transition temp.

8

1

176

Electronics Box top near S/C thermistor temp.

8

1

177

LASER Box near Òhot footÓ temp.

8

1

178

28V Monitor

8

1

179

Reference Voltage monitor

8

1

180

+12V mon.

8

1

181

24V mon.

8

1

182

+5V mon.

8

1

183

-12V mon.

8

1

184

LASER/thermal current mon.

8

1

185

-5V mon.

8

1

186

PS current mon.

8

1

187

HV current mon.

8

1

188

-12V current mon.

8

1

189

+12V current mon.

8

1

190

-5V current mon.

8

1

191

+5V current mon.

8

1

192

STATUS register value (SEU counter)

8

1

193

Software Version 4.4 bit format

8

1

194

Flag word (2 KB RAM block test)

16

2

196

Command count (Parameter Updates)

16

2

198

Command count (Memory Loads)

16

2

200

Command count (Memory Dumps)

16

2

202

Command errors

16

2

204

Status flags

16

2

206

Sub-command errors

16

2

208

Commands received

16

2

210

Command echo

1232

154

364

Memory Dump Start Address

16

2

366

Memory Dump Length

16

2

368

Memory Dump Segment

6880

860

1228

Packet Checksum

16

2

1230

Total

9840

1230

 

Appendix A  AEDR File Science Mode Data Dictionary

Version 6.0, 9/26/96

ENTRY_NAME           = "Aggregated Experiment Data Record File"
 COMMENTS            = "The first archived MOLA data product. The
  experiment data records grouped by orbit. The Level 0 data product
  consisting of all 14-second science and maintenance mode telemetry data
  packets or EDRs collected in chronological order for a specific Mars
  orbit to form the raw packet data file."
 ALIAS               = "AEDR File; MOLA Aggregated Packet Data File"
 AUTHOR              = "Abshire, Blair, Hancock, Hayne, and Northam"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 08/27/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = "N/A"
 FIELD_FORMAT        = "One logical record per physical record
  (unblocked)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "N/A"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "AEDR + AEDR + ... + AEDR"
 DATA_TYPE           = "sequential access file"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "N/A"
 UNITS               = "N/A"

ENTRY_NAME           = "Aggregated Experiment Data Record"
 COMMENTS            = "The first archived MOLA data product logical
  record. The experiment data record. The Level 0 data product logical
  record; a 14-second science or maintenance mode telemetry data packet
  or EDR. Packet Error Control is optional; it is not used for MOLA"
 ALIAS               = "AEDR; MOLA Raw Packet; Maintenance Mode EDR;
  Science Mode EDR"
 AUTHOR              = "Abshire, Blair, Hancock, Hayne, and Northam"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 08/27/90
 DATE_MODIFIED       = 12/02/92
 FIELD_NAME          = "N/A"
 FIELD_FORMAT        = "N/A"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "N/A"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "CHDO+P_SHDR+TIMCD+SOURCE_DATA+Packet Error
  Control"
 DATA_TYPE           = "logical record"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14-seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Packet CHDO"
 COMMENTS            = "The compressed header data object applied to the
  packet by the Telemetry Input System (TIS); 150 bytes"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/02/92
 DATE_MODIFIED       = 12/02/92
 FIELD_NAME          = CHDO
 FIELD_FORMAT        = "150 bytes"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "1200-bit, unsigned"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = CHDO
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14-seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Packet source header"
 COMMENTS            = "The primary source information header applied by
  the Payload Data System (PDS) to the MOLA telemetry packet at the time
  of creation of the packet prior to transfer frame creation."
 ALIAS               = "telemetry packet header, primary header"
 AUTHOR              = "Garvin, Hancock, Northam, and Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 03/17/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = P_SHDR
 FIELD_FORMAT        = "3I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "48-bit, unsigned"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = " PKT_ID + SEQ_CTRL + PKT_LEN"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14-seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Packet ID"
 COMMENTS            = "Identifies the format and originating source of
  the packet."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 12/07/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = PKT_ID
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16-bit, unsigned"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = " VERS_NUM + SPARE + FLAG + APPL_ID"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14-seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Version number"
 COMMENTS            = "These bits identify Version 1 as the Source
  Packet structure. These bits shall be set to '000'."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/07/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = VERS_NUM
 FIELD_FORMAT        = "3 bits (0-2)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = 0:7
 DISCRETE_VALUES     = {0}
 COMPOSITION         = VERS_NUM
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Spare"
 COMMENTS            = "Reserved spare. This bit shall be set to '0'."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/07/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = SPARE
 FIELD_FORMAT        = "1 bit (3)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = 0:0
 DISCRETE_VALUES     = {0}
 COMPOSITION         = SPARE
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Flag"
 COMMENTS            = "This flag signals the presence or absence of a
  Secondary Header data structure within the Source Packet. This bit
  shall be set to '0' since no Secondary Header formatting standards
  currently exist for Mars Global Surveyor."
 ALIAS               = "Secondary header flag"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/07/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = FLAG
 FIELD_FORMAT        = "1 bit (4)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = 0:0
 DISCRETE_VALUES     = {0}
 COMPOSITION         = FLAG
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Application ID"
 COMMENTS            = "This field uniquely identifies the individual
  application process within the spacecraft that created the Source
  Packet data."
 ALIAS               = "Application Process ID"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 12/07/90
 DATE_MODIFIED       = 06/11/92
 FIELD_NAME          = APPL_ID
 FIELD_FORMAT        = "11 bits (5 - 15)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "N/A"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "ERR_STAT + INSTR_ID"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "N/A"
 
ENTRY_NAME           = "Error status bits (PDS)"
 COMMENTS            = "000 is the bit pattern for valid data, 011 for
  fill packet data generated when a MOLA packet is incomplete."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = ERR_STAT
 FIELD_FORMAT        = "3 bits (5-7)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = 0:7
 DISCRETE_VALUES     = N/A
 COMPOSITION         = ERR_STAT
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Instrument ID"
 COMMENTS            = "00100011 is the bit pattern for MOLA"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 06/11/92
 FIELD_NAME          = INSTR_ID
 FIELD_FORMAT        = "8 bits (8-15)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = "N/A"
 DISCRETE_VALUES     = {00100011 (35)}
 COMPOSITION         = INSTR_ID
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Sequence control"
 COMMENTS            = "N/A"
 ALIAS               = "Packet sequence control"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 12/06/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = SEQ_CTRL
 FIELD_FORMAT        = I*2
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16-bit, unsigned"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "SEG_FLAG + SEQ_CNT"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14-seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Segmentation Flag"
 COMMENTS            = "For Mars Global Surveyor segmentation shall not
  occur. These bits shall be set to '11'."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/07/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = SEG_FLAG
 FIELD_FORMAT        = "2 bits (0-1)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = "N/A"
 DISCRETE_VALUES     = {11 (3)}
 COMPOSITION         = SEG_FLAG
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Sequence count"
 COMMENTS            = "This field contains a straight sequential count
  (modulo 16384) of each packet generated by the MOLA application process
  on the spacecraft. The purpose of the field is to order this packet
  with respect to other packets from the same application process. The
  last four bits are the counter into the OTS array in the Parameter
  Table."
 ALIAS               = "Source sequence count"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/07/90
 DATE_MODIFIED       = 06/11/92
 FIELD_NAME          = SEQ_CNT
 FIELD_FORMAT        = "14 bits (2-15)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = 0:16383
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = SEQ_CNT
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Packet length"
 COMMENTS            = "This field contains a sequential 16-bit binary
  count 'C' of the length (in octets) of the data area structure that is
  enclosed between the first bit of the Secondary Header and the last bit
  of the packet (i.e., the last bit of the Source Data field). C = ((no.
  of octets) - 1)"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/06/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = PKT_LEN
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16-bit, unsigned, fixed-point"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = PKT_LEN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 14-seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "MOLA System time code"
 COMMENTS            = "The MOLA system time is created from the 2 time
  words input from the PDS time broadcast command. The MOLA time is
  updated 7/8 of a second after reception of the time broadcast command
  and 6/8 of a second after interpreting the time broadcast command with
  S/C + 1 second to arrive at the correct time. B[0] is S/C time in
  seconds * 224; B[1] is S/C time in seconds * 216; B[2] is S/C time in
  seconds * 28; B[3] is S/C time in seconds"
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = TIME
 FIELD_FORMAT        = I*4
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "32 bit, unsigned"
 RANGE               = 0:4,294,967,295
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = TIME
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Fine Time"
 COMMENTS            = "The hi-resolution timer reading taken during
  interrupt handling routine triggered by the trailing edge of the first
  10 Hz interrupt encountered during this packet."
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = MSECS
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "MSECS"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Source data"
 COMMENTS            = "The source data field contains the measurement
  information generated by the primary application process operating
  within each source. The size of the field shall be an integral number
  of octets. For MOLA the measurement information is generated by the
  Laser Altimeter and the field size is 1080 bytes (8640 bits). The field
  size includes the source primary header (48 bits) and the time code
  words (40 bits). Both Maintenance Mode and Science Mode packets are
  included in composition."
 ALIAS               = "Telemetry packet data, science mode data"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = SOURCE_DATA
 FIELD_FORMAT        = N/A /* Formatted as described in the following
  entries. */
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = " 'PKT_TYPE + ENG_HSK_DAT + SEU_CNT + SW_VNUM +
  FL_RAMTEST + SCI_DAT' or 'PKT_TYPE + ENG_HSK_DAT + SEU_CNT + SW_VNUM +
  FL_RAMTEST + MM_DAT'"
 DATA_TYPE           = "N/A"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Packet type"
 COMMENTS            = "Packet type identifier byte. Distinguishes
  Science Mode packets from Maintenance Mode packets. Science Mode = 0.
  Maintenance Mode = [1 = Status packet, 2 = memory dump, 3 = noise
  count]. Values 4 - 255 are reserved for future modes. Modes 0, 1, 2 are
  hard coded in the flight software. Mode 3 is the result of a code
  patch. The packet type value should be patched when a code patch occurs
  that affects that mode's packet content."
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 06/11/92
 FIELD_NAME          = PKT_TYPE
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "unsigned, 8 bit"
 RANGE               = 0:255
 DISCRETE_VALUES     = {0, 1, 2, ..., 255}
 COMPOSITION         = PKT_TYPE
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Engineering/Housekeeping data"
 COMMENTS            = "Analog monitor values; occur once per packet.
  Used for instrument health and welfare assessment."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 03/06/91
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = ENG_HSK_DAT
 FIELD_FORMAT        = N/A /* Formatted as follows */
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "CM_TMP + CPU_TMP + PS_TMP + IO_TMP + AHS_TMP +
  DADE_TMP + LED_TMP + OSC_TMP + SD_TEMP + DB_TMP + LOPP__TMP + LOUT_TMP
  + IF_TMP + RST_TMP + EB_TMP + LB_TMP + P28V_MN + RV_MN + P12V_MN +
  P24V_MN + P5V_MN + N12V_MN + LTC_MN + N5V_MN + PSC_MN + HV_MON +
  N12VC_MN + P12VC_MN + N5VC_MN + P5VC_MN"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Computer memory temperature"
 COMMENTS            = "Mux A, Ch #2"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = CM_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = CM_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Computer CPU temperature"
 COMMENTS            = "Mux A, Ch #1"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = CPU_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = CPU_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Power Supply temperature"
 COMMENTS            = "Mux A, Ch #4"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = PS_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = PS_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Computer I/O temperature"
 COMMENTS            = "Mux A, Ch #3"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = IO_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = IO_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "LASER array heat sink temperature"
 COMMENTS            = "Mux A, Ch #6"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = LARY_TEMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = AHS_TEMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "LASER diode array drive electronics temperatureÓ
 COMMENTS            = "Mux A, Ch #5"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = DADE_TEMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = LDRV_TEMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Optical Test Source (OTS) LED temperature"
 COMMENTS            = Mux A, Ch #8
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = LED_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = LED_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "100 MHz Oscillator temperature"
 COMMENTS            = Mux A, Ch #7
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = OSC_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = OSC_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Start detector temperature"
 COMMENTS            = "Mux A, Ch #10"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = SD_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = SD_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Outside Detector Box temperature"
 COMMENTS            = Mux A, Ch #9
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = DH_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = DB_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "LASER Radiator opposite output port temperature"
 COMMENTS            = Mux A, Ch #11
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = LOPP_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = LOPP_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "LASER Radiator output port temperature"
 COMMENTS            = "Mux A, Ch #11"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = LOUT_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = LOUT_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Interface Plate near Õhot footÕ temperature"
 COMMENTS            = "Mux A, Ch #14"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = IF_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = IF_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Radiation sheet transition temperature"
 COMMENTS            = "Mux A, Ch #13"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = HP_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = RST_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Electronics Box top near S/C thermistor
  temperature"
 COMMENTS            = "Mux A, Ch #16"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = EB_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = EB_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "LASER Box near Õhot footÕ temperature"
 COMMENTS            = "Mux A, Ch #15"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = LB_TMP
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = LB_TMP
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "28 Volt monitor"
 COMMENTS            = "Mux B, Ch #2"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = P28V_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = P28V_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Reference Voltage monitor"
 COMMENTS            = "Mux B, Ch #1"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = RV_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = RV_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "+12 Volt voltage monitor"
 COMMENTS            = "Mux B, Ch #4"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = P12V_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = P12V_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "24 Volt voltage monitor"
 COMMENTS            = "Mux B, Ch #3"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = P24V_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = P24V_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "+5 Volt voltage monitor"
 COMMENTS            = "Mux B, Ch #6"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = P5V_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = P5V_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "-12 Volt voltage monitor"
 COMMENTS            = "Mux B, Ch #5"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = N12V_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = N12V_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "LASER / thermal current monitor"
 COMMENTS            = "Mux B, Ch #8"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = LTC_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = LTC_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "-5 Volt voltage monitor"
 COMMENTS            = "Mux B, Ch #7"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = N5V_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = N5V_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Power Supply current monitor"
 COMMENTS            = "Mux B, #10"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = PSC_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = PSC_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "High Voltage current monitor"
 COMMENTS            = "Mux B, Ch #9"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = HV_MON
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = HV_MON
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "-12 Volt current monitor"
 COMMENTS            = "Mux B, Ch #12"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = N12VC_MN
 FIELD_FORMAT        = "I*1
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = N12VC_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "+12 Volt current monitor"
 COMMENTS            = "Mux B, Ch #11"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = P12VC_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = P12VC_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "-5 Volt current monitor"
 COMMENTS            = "Mux B, Ch #14"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = N5VC_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = N5VC_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "+5 Volt current monitor"
 COMMENTS            = "Mux B, Ch #13"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/10/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = P5VC_MN
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = P5VC_MN
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Current STATUS register value (SEU counter)"
 COMMENTS            = "Value read from STATUS register at end of packet
  collection cycle. Read STATUS register and store lower 8 bits. MSnibble
  = SEU counter value"
 ALIAS               = "STATUS register at end of packet collection
  cycle"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = SEU_CTR
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = SEU_CTR
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Software Version Number (4.4 bit format)"
 COMMENTS            = "4.4 bit format version number. Version number is
  hard coded in software and is stored in packet at the end of the packet
  collection cycle. Any software patches should include an update to this
  value. Current flight version is 7.6 therefore, 76h is hard coded in
  the Pack_it() routine of the Science Mode. Maintenance Mode version is
  6.2 therefore 62h is coded."
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = SW_VER
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = SW_VER
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Flag word (2 KB RAM block test)"
 COMMENTS            = "RAM block test flag word. Memory test results. Bit representation of the results of the RAM write/read/verify block test performed after a CPU reset (HOT or COLD start). MSB (#15) represents the memory block from 7800h to 7FFFh; LSB (#0) from 0000h to 7FFh. 1 = error detected, 0 = block O.K. {jbb - A 0 represents a validated block, while a 0 (1?) means that the program encountered an invalid compare on at least one byte in that block area. B[0] is bits 15 - 8 of RAM test flag; B[1] is bits 7 - 0 of RAM test flag"
 ALIAS               = "RAM block test flag word"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = RAMTEST
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16 bit, unsigned"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = RAMTEST
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

 NOTE                = "At this point the format and data elements in the two modes differ."

ENTRY_NAME           = "Science Mode Data"
 COMMENTS            = "The description of the Science Mode Data (SCI_DAT) is included here. See the AEDR Maintenance Mode Data Dictionary for a description of the Maintenance Mode telemetry data packets (MM_DAT)."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 09/28/91
 DATE_MODIFIED       = 09/28/91
 FIELD_NAME          = SCI_DAT
 FIELD_FORMAT        = "N/A"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "N/A"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "ST_FLAGS + SW_VAL + RECCMD_CNT + CMDERR_CNT +
  XMIT_TH + RT_STAT + R_GATE + HSTART_VAL + VALCMD_CNT + MEM_DUMP +
  CMD_ECHO + PKT_VAL + FRM_SHOT_DATA"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Status Flags (SFLAG1(16 bits),SFLAG2(16 bits))"
 COMMENTS            = "Values of SFLAG1 and SFLAG2 stored at packet
  completion. Each flag represents four 4 bit words. B[0] = byte 0; B[1]
  = byte 1; B[2] = byte 2; B[3] = byte 3. SFLAG1 = (B[0] * 256) + B[1];
  SFLAG2 = (B[2] * 256) + B[3]. The meanings of the individual bit
  settings is in Appendix A of the Flight Software's User's Guide"
 ALIAS               = "32 software status bits"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 06/11/92
 FIELD_NAME          = "ST_FLG_1,ST_FLG_2"
 FIELD_FORMAT        = "eight 4 bit values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "32 bit, unsigned"
 RANGE               = 0:4,294,967,295
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "ST_FLG_1,ST_FLG_2"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Software validity checksum"
 COMMENTS            = "Checksum (end-around-carry, word adds) calculated using start address and length from Parameter Table. One word calculated using (CHKLEN/2)# of word end-around-carry additions start at word # (CHKSTART/2). Note : CHKLEN and CHKSTART exist in the parameter table and are BYTE length and BYTE address or offset. B[0] is MSByte and B[1] is LSByte of software validity checksum."
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = SW_CKSM
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16 bits, unsigned"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = SW_CKSM
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Received command count (modulo 8 bits)"
 COMMENTS            = "Number of commands received in the DMA buffer, i.e., number separated by CMD_START bits set, never cleared, init = 0. Number of CMD_START bits set in the commands received buffer. Only look at the number of commands received during that RTI interval. Count performed during RTI 4ms 'quiet time'. Counter starts at 0 from a HOT/COLD start, counts up and rolls over from 0FFh to 00h."
 ALIAS               = "Number of commands received"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = REC_CMD
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = 8 bits, unsigned
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = REC_CMD
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Command error count (modulo 8 bits)"
 COMMENTS            = "Number of invalid MOLA specific commands received, never cleared, init = 0. Command errors counter works the same way as Received command count (see above), except, this counts the # of command errors, defined as TBD."
 ALIAS               = "Number of command errors encountered"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = CMD_ERR
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = CMD_ERR
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Transmitter threshold setting (XMITDA)"
 COMMENTS            = "Value of XMITDA from Parameter table, stored at packet completion. LSB is equivalent to 1 mv. This byte reports the value of XMITDA from PARAM_TABLE. It is stored in the packet at the end of the packet collection cycle."
 ALIAS               = "Transmitter start detector threshold setting"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = XMTR_TS
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = XMTR_TS
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = millivolts

ENTRY_NAME           = "Range Tracking Status"
 COMMENTS            = "MSB = OTS_FIRE value, bits 7654321, 1 = TRACKING,
  0 = ACQ. MSB (#7) is the LSB of OTS_FIRE from PARAM_TABLE, stored at
  the end of the packet collection cycle. It is the value used to determine the firing status of the OTS for the first shot of the packet cycle. Bits 6-0 represent frames 7-1 tracking status. 0 means that the software was in acquisition mode for that frame, while 1 represents tracking mode."
 ALIAS               = "Ranging status byte and OTS fire flag value"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 06/11/92
 FIELD_NAME          = R_TRK_ST
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = R_TRK_ST
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Range gate tracker array (73.728 km)"
 COMMENTS            = "73.728 km, 48 HISTOGRAM bins starting at HSTART.
  48 sequential bins of the ranging histogram, stored after the sixth
  shot is collected, but before the ranging algorithm is executed on that
  frame's data. HSTART, from PARAM_TABLE, with the LSB cleared is the
  number of the first bin stored. Bins are represented as bytes, but they
  are stored as words. Therefore, the bytes are swapped. HSTART
  correction : HSTART = HSTART + 0xFFFE. The following denotes the range
  of each bin for each data byte (B[x]). C = 1.536km.
 B[ 0] : (HSTART + 1) * C; B[ 1] : (HSTART + 0) * C;
 B[ 2] : (HSTART + 3) * C; B[ 3] : (HSTART + 2) * C;
 B[ 4] : (HSTART + 5) * C; B[ 5] : (HSTART + 4) * C;
 B[ 6] : (HSTART + 7) * C; B[ 7] : (HSTART + 6) * C;
 B[ 8] : (HSTART + 9) * C; B[ 9] : (HSTART + 8) * C;
 B[10] : (HSTART + 11) * C; B[11] : (HSTART + 10) * C;
 B[12] : (HSTART + 13) * C; B[13] : (HSTART + 12) * C;
 B[14] : (HSTART + 15) * C; B[15] : (HSTART + 14) * C;
 B[16] : (HSTART + 17) * C; B[17] : (HSTART + 16) * C;
 B[18] : (HSTART + 19) * C; B[19] : (HSTART + 18) * C;
 B[20] : (HSTART + 21) * C; B[21] : (HSTART + 20) * C;
 B[22] : (HSTART + 23) * C; B[23] : (HSTART + 22) * C;
 B[24] : (HSTART + 25) * C; B[25] : (HSTART + 24) * C;
 B[26] : (HSTART + 27) * C; B[27] : (HSTART + 26) * C;
 B[28] : (HSTART + 29) * C; B[29] : (HSTART + 28) * C;
 B[30] : (HSTART + 31) * C; B[31] : (HSTART + 30) * C;
 B[32] : (HSTART + 33) * C; B[33] : (HSTART + 32) * C;
 B[34] : (HSTART + 35) * C; B[35] : (HSTART + 34) * C;
 B[36] : (HSTART + 37) * C; B[37] : (HSTART + 36) * C;
 B[38] : (HSTART + 39) * C; B[39] : (HSTART + 38) * C;
 B[40] : (HSTART + 41) * C; B[41] : (HSTART + 40) * C;
 B[42] : (HSTART + 43) * C; B[43] : (HSTART + 42) * C;
 B[44] : (HSTART + 45) * C; B[45] : (HSTART + 44) * C;
 B[46] : (HSTART + 47) * C; B[47] : (HSTART + 46) * C"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = R_BIN_HG
 FIELD_FORMAT        = "48 1 byte bins"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "384 bits, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = R_BIN_HG
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "HSTART value for HISTOGRAM dump"
 COMMENTS            = "Value of HSTART from Parameter table, stored at
  packet completion. Stored at the end of the packet collection cycle.
  HSTART is used to store the Histogram dump bins on the previous frame
  (2 seconds earlier). HSTART is right shifted one bit and used as a word
  pointer, therefore, its LSB is cleared. B[0] = MSByte of HSTART; B[1] =
  LSByte of HSTART"
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = HSTART
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16 bits, unsigned"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "HSTART"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Valid commands received count (modulo 16 bits)"
 COMMENTS            = "Number of Time broadcast and Parameter update and
  channel on/off commands executed, never cleared, init. = 0. This is a
  16 bit counter that starts at 0 after a CPU reset and rolls over from
  0FFFFh to 0. Valid MOLA specific commands are defined as Channel ON/OFF
  commands and Parameter Update command (irregardless of parameter offset
  validity - invalid offsets are flagged and counted as Subcommand errors). All other MOLA specific commands are either flagged as errors or cause a mode change or CPU reset. B[0] = MSByte and B[1] = LSByte of valid cmd counter"
 ALIAS               = "# valid MOLA specific commands"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = VAL_CMD
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16 bit, unsigned"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = VAL_CMD
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Memory dump segment"
 COMMENTS            = "16 bytes read from memory space starting at
  ((SEQUENCE & 0x3FFh)*16), dumps 0 - 3FFFh then starts again at 0. Using
  the lower 11 bits of the SEQUENCE count, stored in this packet,
  multiplied by 16 as the starting byte address, 8 words are read from
  RAM and stored in the packet. The following denotes the memory address
  at each data byte (B[x]). C = ((SEQUENCE & 0x3FFF) *16).
 B[ 0] : C+ 1; B[ 1] : C+ 0; B[ 2] : C+ 3; B[ 3] : C+ 2;
 B[ 4] : C+ 5; B[ 5] : C+ 4; B[ 6] : C+ 7; B[ 7] : C+ 6;
 B[ 8] : C+ 9; B[ 9] : C+ 8; B[10] : C+11; B[11] : C+10;
 B[12] : C+13; B[13] : C+12; B[14] : C+15; B[15] : C+14"
 ALIAS               = "Ram dump portion"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = MEM_DUMP
 FIELD_FORMAT        = "16 1 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "128 bits, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "MEM_DUMP"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Command echo"
 COMMENTS            = "First 8 command words received during current
  packet, only complete commands are stored, MOLA specific commands only.
  The software attempts to echo all valid commands. If the command will
  fit in the room remaining in the buffer, then it is stored and that
  much room is removed from that which remains in the echo buffer. If a
  command will not fit, then a buffer overflow is flagged, but subsequent
  commands that will fit are still stored in the buffer. B[0]: MSB of
  command word (CW) #1;B[1]: LSB of CW#1;B[2]: MSB of CW#2;B[3]: LSB of
  CW#2;B[4]: MSB of CW#3;B[5]: LSB of CW#3; B[6]: MSB of CW#4;B[7]: LSB
  of CW#4;B[8]: MSB of CW#5;B[9]: LSB of CW#5;B[10]: MSB of CW#6;B[11]:
  LSB of CW#6;B[12]: MSB of CW#7; B[13]: LSB of CW#7;B[14]: MSB of
  CW#8;B[15]: LSB of CW#8. NOTE: The command echo buffer is filled with
  zeros at the start of each packet."
 ALIAS               = "Echo valid commands"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = CMD_ECHO
 FIELD_FORMAT        = "8 I*2 words"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "128 bits, unsigned"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = CMD_ECHO
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "N/A"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Packet validity checksum"
 COMMENTS            = "Simple 16 bit addition of entire packet contents
  upon completion. This location is zeroed for addition. This word is
  zeroed, then words 0-539 are added without carry to a variable that is
  initially zero. The resulting lower 16 bits are stored in this
  location. To verify, read, store, and clear this location. Then, word
  add without carry these 540 words and compare the lower 16 bits with
  the stored value."
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/11/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = PKT_CKSM
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16 bit, unsigned"
 RANGE               = 0:65536
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = PKT_CKSM
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once / 14 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Frame /Shot data"
 COMMENTS            = "For each of 7 frames, the good laser data out of
  20 laser shots per frame."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 08/20/91
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = FRM_SHOT_DATA
 FIELD_FORMAT        = "N/A" /* Formatted as described below */
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "UNSIGNED"
 RANGE               = "N/A"
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "RANGING_CNT + CH_1_RE + CH_2_RE + LZ_XMT + MF_ID
  + TIU_URB + RC_MSK + AS_HCT + CH_1_TS + CH_2_TS + CH_3_TS + CH_4_TS +
  R_DELAY + R_WIDTH + AS_MHT + SWSTAT + CH_1_BC + CH_2_BC + CH_3_BC +
  CH_4_BC"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "once per two seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Range to surface"
 COMMENTS            = "The possible 20 valid frame laser shots surface
  ranging measurements in Timing Interval Unit (TIU) counts. The least
  significant 16 bits of TIU (LSTIU), stored for every shot. B[0] = Bits
  15 - 8 of TIU reading; B[1] = Bits 7 - 0 of TIU reading"
 ALIAS               = "Lower 16 bits of TIU"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = RANGING_CNT
 FIELD_FORMAT        = "20 I*2 words"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16 bit, unsigned"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "RANGING_CNT"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "10 shots per second"
 UNITS               = "COUNTS"

ENTRY_NAME           = "1st channel received pulse energy"
 COMMENTS            = "The level of return, reflected energy as received
  by the first channel and matched filter to trigger. This is a set of
  values for all possible 20 shots within the frame. Lowest numbered
  non-zero energy reading for each shot."
 ALIAS               = "Return energy in first triggered channel, First
  channel to receive energy"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = CH_1_RE
 FIELD_FORMAT        = "20 1 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = CH_1_RE
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "10 per second"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Channel Number / Pulse Width of Return Energy"
 COMMENTS            = "The channel triggered by the return energy; bits
  7,6 = channel number - 1. The pulse width of the returned shot; Bit 5 - 0."
 ALIAS               = "Trigger channel"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 4/1/97
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = CHAN_PW
 FIELD_FORMAT        = "20 1 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned, fixed point"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "CHAN_PW"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "10 per second"
 UNITS               = "COUNTS"

ENTRY_NAME           = "LASER transmitter power"
 COMMENTS            = "Transmitted laser pulse energy level. This is a
  set of values for all 20 shots within the frame. Energy reading for
  LASER transmit power for each shot."
 ALIAS               = "Laser transmit power, laser shot power level,
  Laser shot transmit power"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = LZ_XMT
 FIELD_FORMAT        = "20 1 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8 bit, unsigned, fixed point"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "LZ_XMT"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "10 per second"
 UNITS               = "Pulse height"

ENTRY_NAME           = "Encoder Bits"
 COMMENTS            = "The start and stop encoder bits for each shot. Applied to range to surface counts to get a more precise range value. A set of 20 half-byte values, one for each laser shot. Each byte contains values for an odd and an even numbered shot. Per byte = Bit 7 - 6 - encoder stop bits for odd shots; Bit 5 - 4 - encoder start bits for odd shots; Bit 3 - 2 - encoder stop bits for even shots; Bit 1 - 0 - encoder start bits for even shots. Odd numbered SHOTs order - 3,1, 7, 5,11, 9, 15, 13, 19, 17; Even numbered SHOTs order - 4, 2, 8, 6, 12, 10, 16, 14, 20, 18"
 ALIAS               = "Interpolator bits"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 4/1/97
 DATE_MODIFIED       = 4/1/97
 FIELD_NAME          = ENC_BITS
 FIELD_FORMAT        = "20 0.5 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "4-bit, unsigned, fixed-point"
 RANGE               = 0:15
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "ENC_BITS"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "N/A"
 PRECISION           = "N/A"
 DATA_RATE           = "10 per second"
 UNITS               = "N/A"

ENTRY_NAME           = "TIU upper range bits"
 COMMENTS            = "The upper 3 or 3 highest ordered bits of the MOLA time interval unit (TIU). Only the largest MSTIU value read in current frame is saved. Only bits 6, 5, 4 are used. With Receiver channel mask status (bits 3-0) below forms one byte. Will be either the values 3 or 4."
 ALIAS               = "Most significant portion of the range to surface measurement"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = TIU_URB
 FIELD_FORMAT        = "7 0.5 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "4-bit, unsigned"
 RANGE               = 0:7
 DISCRETE_VALUES     = {3,4}
 COMPOSITION         = "TIU_URB"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds; 7 per packet"
 UNITS               = "COUNTS"
ENTRY_NAME           = "Receiver channel mask status"
 COMMENTS            = "The altimeter channel mask settings from the flight parameter table at the time of acquisition and storage of the TIU upper range bits. The mask indicates if the channel filter is active or is masked out to prevent triggering the TIU. Least significant 4 bits of ALTSET from Parameter table; stored at same time as largest MSTIU. The value sent to ALTMOD in Altimeter Electronics. With TIU upper range bits above forms one byte. Bit 3 = Channel 1; Bit 2 = Channel 2; Bit 1 = Channel 3; Bit 0 = Channel 4. 1 = channel on, 0  = channel off"
 ALIAS               = "ALTMOD; parameter table channels enabled,
  Receiver channel mask status bits"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = RC_MSK
 FIELD_FORMAT        = "7 0.5 bytes per packet"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "4-bit, unsigned"
 RANGE               = 0:15
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "RC_MSK"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Algorithm status (HIT_COUNT)"
 COMMENTS            = "Current value from the active data frame showing
  the number of hits counted in the possible 20 shot hits in the single
  frame or the number of hits summed over the possible 100 shots when in
  the 5 frame mode. This is an indicator of the performance of the
  tracking algorithm. If in the acquisition mode, this field will contain
  the number of shot hits from a possible 80 shots within the 4 frame
  acquisition window. HIT_CNT from previous frame."
 ALIAS               = "Tracking algorithm hit count status"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = AS_HCT
 FIELD_FORMAT        = "7 1 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8-bit, unsigned"
 RANGE               = "0:20 or :80(tracking) or :80(acquisition)"
 DISCRETE_VALUES     = {0, 20, 80}
 COMPOSITION         = "AS_HCT"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Channel half-frame threshold settings"
 COMMENTS            = "The active channel threshold settings in the
  current frame. The settings of the 4 channel thresholds are sampled for
  the first 10 shots in the frame, and again for the final 10 frame
  shots. Value of CH(1,2,3,4) TH during a half-frame of current frame."
 ALIAS               = "Receiver threshold settings"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = "CH_1_TS,CH_2_TS,CH_3_TS,CH_4_TS"
 FIELD_FORMAT        = "8 1 byte values per frame (56 per packet)"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8-bit, fixed point, unsigned"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "CH_1_TS,CH_2_TS,CH_3_TS,CH_4_TS"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "0nce per second (for each channel)"
 UNITS               = "UNK"

ENTRY_NAME           = "Range delay"
 COMMENTS            = "Current frame range gate delay value (DELAY) as
  set from the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and
  B[1] : LSByte (bits 0-7) of the 12 bit Range Delay setting for this frame."
 ALIAS               = "range gate delay"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = R_DELAY
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16-bit, unsigned, fixed point"
 RANGE               = 0:65535
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "R_DELAY"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Range width"
 COMMENTS            = "Current frame range gate window or width; set at
  end of the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and
  B[1] : LSByte of the 12 bit Range Gate Window setting for this frame."
 ALIAS               = "range gate width"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = R_WIDTH
 FIELD_FORMAT        = "I*2"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "16-bit, unsigned, fixed-point"
 RANGE               = 0:(2^12 - 1)
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "R_WIDTH"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Algorithm status (MIN_HITS)"
 COMMENTS            = "The minimum shot hit count value required for a matched filter channel to trigger; MIN_HITS value set in algorithm from the previous data frame."
 ALIAS               = "minimum hit count"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = AS_MHT
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8-bit, signed, fixed-point"
 RANGE               = {-32768:32767}
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "AS_MHT"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Software status (frame counter, trigger channel)"
 COMMENTS            = "Two of values reflecting the operation of the
  flight software tracking algorithm. The frame counter value and the
  first channel triggering at or above the minimum hit count are set from
  the previous data frame tracking algorithm operation. Frame counter
  (Frame_ctr) value from previous frame's tracking algorithm is in MS 4
  bits; MIN_HITS trigger channel from previous frame is in LS 4 bits."
 ALIAS               = "N/A"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "GROUP"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = SWSTAT
 FIELD_FORMAT        = "I*1"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8-bit, unsigned", fixed-point
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "FRM_CTR + SS_MHT"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Frame counter"
 COMMENTS            = "The frame counter value is set from the previous
  data frame tracking algorithm operation. Frame counter (Frame_ctr)
  value from previous frame's tracking algorithm is in MS 4 bits (7 - 4)
  of Software status. Bits 7 - 4 are bits 3 - 0 of frame counter."
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 03/06/91
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = FRM_CTR
 FIELD_FORMAT        = "0.5 byte"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "4-bit, unsigned, fixed-point"
 RANGE               = 0:15
 DISCRETE_VALUES     = {1,2,3,4,5,6,7}
 COMPOSITION         = "FRM_CTR"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "COUNTS"

ENTRY_NAME           = "Trigger channel"
 COMMENTS            = "The first channel triggering at or above the
  minimum hit count is set from the previous data frame tracking
  algorithm operation. MIN_HITS trigger channel from previous frame is in
  LS 4 bits (0 - 3) of Software status. Bit 0 = Channel 1; Bit 1 =
  Channel 2; Bit 2 = Channel 3; Bit 3 = Channel 4"
 ALIAS               = "N/A"
 AUTHOR              = "Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 03/0691
 DATE_MODIFIED       = 09/24/91
 FIELD_NAME          = SS_MHT
 FIELD_FORMAT        = "0.5 byte"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "4-bit, unsigned, fixed-point"
 RANGE               = 0:15
 DISCRETE_VALUES     = {1,2,3,4}
 COMPOSITION         = "SS_MHT"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per 2 seconds"
 UNITS               = "N/A"

ENTRY_NAME           = "Channel background count"
 COMMENTS            = "The background energy or noise count levels in channels 1, 2, 3, and 4 respectively by half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots / 2nd 10 shots of frame."
 ALIAS               = "channel background noise levels, channel
  background power"
 AUTHOR              = "Blair, Jester"
 ENTRY_TYPE          = "ELEMENT"
 DATE_CREATED        = 12/12/90
 DATE_MODIFIED       = 08/20/91
 FIELD_NAME          = CH_1_BC,CH_2_BC,CH_3_BC,CH_4_BC
 FIELD_FORMAT        = "8 1 byte values"
 ALLOW_BLANKS        = "N/A"
 BINARY_VALUES       = "8-bit, unsigned, fixed-point"
 RANGE               = 0:255
 DISCRETE_VALUES     = "N/A"
 COMPOSITION         = "CH_1_BC,CH_2_BC,CH_3_BC,CH_4_BC"
 DATA_TYPE           = "INTEGER"
 ACCURACY            = "UNK"
 PRECISION           = "UNK"
 DATA_RATE           = "once per second (for each channel)"
 UNITS               = "COUNTS"

REFERENCE            = "MOLA Data Packet Description"
 REF_AUTHOR          = "James N. Caldwell"
 REF_DATE            = "09/28/90"
 REF_VERSION         = "PRELIMINARY"

REFERENCE            = "Experiment Data Record (EDR) MOLA Science
  Telemetry Packet Spreadsheet"
 REF_AUTHOR          = "E. Thomas Northam"
 REF_DATE            = 01/16/91
 REF_VERSION         = 6.37

REFERENCE            = "MOLA Packet Data Dictionary"
 REF_AUTHOR          = "J. Bryan Blair"
 REF_DATE            = 03/04/91
 REF_VERSION         = "UNK"

REFERENCE            = "Mars Observer Spacecraft Data Standards"
 REF_AUTHOR          = "Kerry D. Erikson"
 REF_DATE            = 07/01/88
 REF_VERSION         = "Revision A"

REFERENCE            = "MOLA Flight Software User's Guide"
 REF_AUTHOR          = "J. Bryan Blair"
 REF_DATE            = 04/10/91
 REF_VERSION         = "2.4"

Appendix B  The AEDR Maintenance Mode Data Dictionary

Version 3.1, 06/11/92

Note: See Appendix A, the AEDR Science Mode Data Dictionary for the description of Maintenance Mode Data Elements that occur prior to those listed here. The definition of the data elements in all packet types is the same until this point.

ENTRY_NAME	=	"Maintenance Mode Data"
 COMMENTS	=	"Describes the contents and format of the maintenance mode data. For maintenance mode status packets (packet type = 1), the contents of the record will be filler data starting at byte 214 to the end of the record. For maintenance mode memory dumps (packet type = 2), the entire record will be filled with valid data. For maintenance mode noise count data (packet type = 3), the entire record will be filled with valid data."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"GROUP"
 DATE_CREATED	=	09/28/91
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	MM_DAT
 FIELD_FORMAT	=	"N/A"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"N/A"
 RANGE	=	"N/A"
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"PARMUP_CC + MEMLOADS_CC + MEMDUMPS_CC + CMD_ERR + STAT_FLAG + SCMD_ERR + CMD_REC + CMD_ECHO + MSTART_ADD + MEMDUMP_LEN + MEMDUMP_SEG + P_CHECK"
 DATA_TYPE	=	"N/A"
 ACCURACY	=	"N/A"
 PRECISION	=	"N/A"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"N/A"

ENTRY_NAME	=	"Command count (parameter updates)"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	PARMUP_CC
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	PARMUP_CC
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"N/A"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"counts"

ENTRY_NAME	=	"Command count (memory loads)"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12 /17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	MEMLOADS_CC
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	MEMLOADS_CC
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"N/A"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"counts"

ENTRY_NAME	=	"Command count (memory dumps)"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	MEMDUMPS_CC
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	MEMDUMPS_CC
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"N/A"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"count"

ENTRY_NAME	=	"Command errors"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	CMD_ERR
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"CMD_ERR"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"N/A"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"counts"

ENTRY_NAME	=	"Status flags"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	 "GROUP?"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	STAT_FLAG
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"STAT_FLAG"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"UNK"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"UNK"

ENTRY_NAME	=	"Sub-command errors"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	SCMD_ERR
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"SCMD_ERR"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"N/A"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"counts"

ENTRY_NAME	=	"Commands received"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/18/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	CMD_REC
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"CMD_REC"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"N/A"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"counts"

ENTRY_NAME	=	"Command echo"
 COMMENTS	=	"Valid data for packet types 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	 CMD_ECHO
 FIELD_FORMAT	=	"I*154"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"1232 bit, unsigned"
 RANGE	=	"N/A"
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"CMD_ECHO"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"UNK"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"UNK"

ENTRY_NAME	=	"Memory dump start address"
 COMMENTS	=	"Valid data for packet type 2. Filler data for packet type 1. Noise count data for packet type 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	MSTART_ADD
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"MSTART_ADD"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"UNK"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"UNK"

ENTRY_NAME	=	"Memory dump length"
 COMMENTS	=	"Valid data for packet type 2. Filler data for packet type 1. Noise count data for packet type 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	MEMDUMP_LEN
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"MEMDUMP_LEN"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"UNK"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"counts"

ENTRY_NAME	=	"Memory dump segment"
 COMMENTS	=	"Valid data for packet type 2. Filler data for packet type 1. Noise count data for packet type 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	MEMDUMP_SEG
 FIELD_FORMAT	=	"I*860"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"6880 bits, unsigned"
 RANGE	=	"N/A"
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"MEMDUMP_SEG"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"UNK"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"UNK"

ENTRY_NAME	=	"Packet checksum"
 COMMENTS	=	"Valid data for packet type 1, 2, and 3."
 ALIAS	=	"N/A"
 AUTHOR	=	"Jester"
 ENTRY_TYPE	=	"ELEMENT"
 DATE_CREATED	=	12/17/90
 DATE_MODIFIED	=	06/11/92
 FIELD_NAME	=	P_CHECK
 FIELD_FORMAT	=	"I*2"
 ALLOW_BLANKS	=	"N/A"
 BINARY_VALUES	=	"16 bit, unsigned"
 RANGE	=	0:65535
 DISCRETE_VALUES	=	"N/A"
 COMPOSITION	=	"P_CHECK"
 DATA_TYPE	=	"INTEGER"
 ACCURACY	=	"UNK"
 PRECISION	=	"UNK"
 DATA_RATE	=	"once / maintenance mode packet (14 secs.)"
 UNITS	=	"UNK"

REFERENCE	=	"MOLA Data Packet Description"
 REF_AUTHOR	=	"James N. Caldwell"
 REF_DATE	=	"09/28/90"
 REF_VERSION	=	"PRELIMINARY"

REFERENCE	=	"Experiment Data Record (EDR) MOLA Science Telemetry Packet Spreadsheet"
 REF_AUTHOR	=	"E. Thomas Northam"
 REF_DATE	=	01/16/91
 REF_VERSION	=	"6.37"

REFERENCE	=	"MOLA Packet Data Dictionary"
 REF_AUTHOR	=	"J. Bryan Blair"
 REF_DATE	=	03/04/91
 REF_VERSION	=	"UNK"

REFERENCE	=	"Mars Observer Spacecraft Data Standards"
 REF_AUTHOR	=	"Kerry D. Erikson"
 REF_DATE	=	07/01/88
 REF_VERSION	=	"Revision A"


Appendix C

C.1 MOLA AEDR Data Product SFDU Labels and Catalog Header

CCSD3ZF0000100000001NJPL3KS0PDSX$$INFO$$
PDS_VERSION_ID       = PDS3
RECORD_TYPE          = FIXED_LENGTH
FILE_RECORDS         = UNK
RECORD_BYTES         = 1230
LABEL_RECORDS        = 4
FILE_NAME            = "AA00003F.B"
^MOLA_SCIENCE_MODE_TABLE = 5
^MOLA_MAINTENANCE_MODE_TABLE = 5
DATA_SET_ID          = 'MGS-M-MOLA-1-AEDR-L0-V1.0'
PRODUCT_ID           = 'MOLA-AA00003F.B'
SPACECRAFT_NAME      = 'MARS_GLOBAL_SURVEYOR'
INSTRUMENT_ID        = 'MOLA'
INSTRUMENT_NAME      = 'MARS_ORBITER_LASER_ALTIMETER'
TARGET_NAME          = 'MARS'
SOFTWARE_NAME        = 'BROWSER 17.1'
UPLOAD_ID            = '7.6'
PRODUCT_RELEASE_DATE = 1997-258
START_TIME           = 1997-212T19:10:00.000
STOP_TIME            = 1997-212T19:45:00.000
SPACECRAFT_CLOCK_START_COUNT = 443588190.140
SPACECRAFT_CLOCK_STOP_COUNT = 443595246.140
PRODUCT_CREATION_TIME = 1997-258T22:45:00.000
NATIVE_START_TIME    = -187606958.86449
NATIVE_STOP_TIME     = -187599902.86499
MISSION_PHASE_NAME   = 'ORBIT INSERTION'
ORBIT_NUMBER         = 00003
PRODUCER_ID          = 'MGS_MOLA_TEAM'
PRODUCER_FULL_NAME   = 'DAVID E. SMITH'
PRODUCER_INSTITUTION_NAME = 'GODDARD SPACE FLIGHT CENTER'
DESCRIPTION          = "This data product contains the aggregation of
  MOLA telemetry packets by orbit. All Experiment Data Record packets
  retrieved from the PDB are collected in this data product. The AEDR
  data product is put together with the Project-provided software tool
  Browser."

OBJECT               = MOLA_SCIENCE_MODE_TABLE
 INTERCHANGE_FORMAT  = BINARY
 ROWS                = 'UNK'
 COLUMNS             = 801
 ROW_BYTES           = 1080
 ^STRUCTURE          = "MOLASCI.FMT"
 DESCRIPTION         = "This table is one of two that describe the
  arrangement of information on the Mars Orbiter Laser Altimeter (MOLA)
  Aggregated Engineering Data Record (AEDR). These Experiment Data
  Records (EDRs) are produced during the science and maintenance modes of
  instrument operation. Consequently, there are two record formats
  possible within the AEDR file. The MOLA_SCIENCE_MODE_TABLE describes
  the format of the data taken in the Science mode. The
  MOLA_MAINTENANCE_MODE_TABLE describes the format of the data taken in
  the Maintenance mode. The data are written sequentially. Each record
  will contain one packet of MOLA telemetry data. Each record contains an
  indicator of its packet type (e.g. science, maintenance, memory dump)
  in byte 11 of the file. It is by interpreting this indicator that the
  user will know which table to apply to the data. For fuller description
  of the values associated with this indicator, please see the column
  labeled PACKET_TYPE, associated with this table. The number of columns
  indicated above in the table definitions refers to the number of column
  objects described in this label. The number of actual columns in the
  entire data record, when each set of descriptors is multiplied by each
  of the seven frames, is 790."
END_OBJECT           = MOLA_SCIENCE_MODE_TABLE

OBJECT               = MOLA_MAINTENANCE_MODE_TABLE
 INTERCHANGE_FORMAT  = BINARY
 ROWS                = 'UNK'
 COLUMNS             = 52
 ROW_BYTES           = 1080
 ^STRUCTURE          = "MOLAMNT.FMT"
 DESCRIPTION         = "This table is one of two that describe the
  arrangement of information on the Mars Orbiter Laser Altimeter (MOLA)
  Aggregated Engineering Data Record (AEDR). These Experiment Data
  Records (EDRs) are produced during the science and maintenance modes of
  instrument operation. Consequently, there are two record formats
  possible within the AEDR file. The MOLA_SCIENCE_MODE_TABLE describes
  the format of the data taken in the Science mode. The
  MOLA_MAINTENANCE_MODE_TABLE describes the format of the data taken in
  the Maintenance mode. The data are written sequentially. Each record
  will contain one packet of MOLA telemetry data. Each record contains an
  indicator of its packet type (e.g. science, maintenance, memory dump)
  in byte 11 of the file. It is by interpreting this indicator that the
  user will know which table to apply to the data. For fuller description
  of the values associated with this indicator, please see the column
  labeled PACKET_TYPE, associated with this table."
END_OBJECT           = MOLA_MAINTENANCE_MODE_TABLE

END

CCSD$$MARKER$$INFO$$NJPL3IF0000000000001

C.2 Contents of the MOLASCI.FMT File

OBJECT	=	COLUMN
 NAME	=	PACKET_CHDO
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	1
 BYTES	=	150
 MINIMUM	=	"N/A"
 MAXIMUM	=	"N/A"
 DESCRIPTION	=	"Packet_chdo is the compressed header data object attached to the MOLA telemetry packet by TIS."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_ID
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	151
 BYTES	=	2
 DESCRIPTION	=	"Packet_id constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."

OBJECT	=	BIT_COLUMN
 NAME	=	VERSION_NUMBER
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	3
 MINIMUM	=	0
 MAXIMUM	=	0
 DESCRIPTION	=	"These bits identify Version 1 as the Source Packet structure. These bits shall be set to '000'."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SPARE
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	4
 BITS	=	1
 MINIMUM	=	0
 MAXIMUM	=	0
 DESCRIPTION	=	"Reserved spare. This bit shall be set to '0'"
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	FLAG
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	1
 MINIMUM	=	0
 MAXIMUM	=	0
 DESCRIPTION	=	"This flag signals the presence or absence of a Secondary Header data structure within the Source Packet. This bit shall be set to '0' since no Secondary Header formatting standards currently exist for Mars Global Surveyor."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	ERROR_STATUS
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	6
 BITS	=	3
 MINIMUM	=	0
 MAXIMUM	=	7
 DESCRIPTION	=	"This field identifies in part the individual application process within the spacecraft that created the Source Packet data."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	INSTRUMENT_ID
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	9
 BITS	=	8
 MINIMUM	=	35
 MAXIMUM	=	35
 DESCRIPTION	=	"This field identifies in part the individual application process within the spacecraft that created the Source Packet data. 00100011 is the bit pattern for MOLA."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SEQUENCE_CONTROL
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	153
 BYTES	=	2
 DESCRIPTION	=	"Sequence_control constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."

OBJECT	=	BIT_COLUMN
 NAME	=	SEGMENTATION_FLAG
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	2
 MINIMUM	=	3
 MAXIMUM	=	3
 DESCRIPTION	=	"For Mars Global Surveyor segmentation shall not occur. These bits shall be set to '11'."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SEQUENCE_COUNT
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	3
 BITS	=	14
 MINIMUM	=	0
 MAXIMUM	=	16383
 DESCRIPTION	=	"This field contains a straight sequential count (modulo 16384) of each packet generated by the MOLA application process on the spacecraft. The purpose of the field is to order this packet with respect to other packets from the same application process. The OTS counter is contained in the lower 4 bits."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_LENGTH
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	155
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Packet_length constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation. This field contains a sequential 16-bit binary count 'C' of the length (in octets) of the data area structure that is enclosed between the first bit of the Secondary Header and the last bit of the packet (i.e., the last bit of the Source Data field). C = ((no. of octets) - 1)."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COARSE_TIME
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	157
 BYTES	=	4
 MINIMUM	=	0
 MAXIMUM	=	4294967295
 DESCRIPTION	=	"The MOLA system time is created from the 2 time words input from the PDS time broadcast command. The MOLA time is updated 7/8 of a second after reception of the time broadcast command and 6/8 of a second after interpreting the time broadcast with S/C + 1 second to arrive at the correct time. B[0] is S/C time in seconds * 2**24; B[1] is S/C time in seconds * 2**16; B[2] is S/C time in seconds * 2**8; B[3] is S/C time in seconds."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	FINE_TIME
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	161
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Fine_time is the high-resolution timer reading taken during interrupt handling routine triggered by the trailing edge of the first 10 Hz interrupt encountered during this packet."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_TYPE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	162
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Packet type identifier byte. Distinguishes Science Mode packets from Maintenance Mode packets. Science Mode = 0; Maintenance Mode = [1 = Status packet, 2 = memory dump, 3 = noise count data]. Values 4 - 255 are reserved for future modes. Modes 0, 1, 2 are hard coded in the flight software. Mode 3 is patched in when the noise count patch is uploaded to the spacecraft. The packet type value should be patched when a code patch occurs that affects that mode's packet content."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMPUTER_MEMORY_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	163
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #2"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMPUTER_CPU_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	164
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #1"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	POWER_SUPPLY_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	165
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #4"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	'COMPUTER_I/O_TEMPERATURE'
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	166
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #3"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASER_ARRAY_HEAT_SINK_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	167
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #6"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	DIODE_ARRAY_DRIVE_ELECS_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	168
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #5"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	OPTICAL_TEST_SOURCE_LED_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	169
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #8"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	HUNDRED_MHZ_OSCILLATOR_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	170
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #7"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	START_DETECTOR_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	171
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #10"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	OUTSIDE_DETECTOR_BOX_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	172
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #9"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASR_RADIATR_OPP_OPT_PORT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	173
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #11"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LSER_RADIATOR_OUTPUT_PORT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	174
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #11"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	INTERFACE_PLATE_HOT_FOOT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	175
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #14"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	RADIATION_SHEET_TRNSITION_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	176
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #13"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ELECTRONICS_BOX_TOP_SC_THRMSTR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	177
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #16"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASER_BOX_HOT_FOOT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	178
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #15"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_28_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	179
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #2"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	REFERENCE_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	180
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #1"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_12_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	181
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #4"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_24_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	182
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #3"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_5_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	183
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #6"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_12_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	184
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #5"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASER_THERMAL_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	185
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #8"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_5_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	186
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #7"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	POWER_SUPPLY_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	187
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #10"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	HIGH_VOLTAGE_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	188
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #9"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_12_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	189
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #12"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_12_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	190
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #11"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_5_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	191
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #14"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_5_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	192
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #13"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CURRENT_STATUS_REGISTER_VALUE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	193
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Value read from STATUS register at end of packet collection cycle. Read STATUS register and store lower 8 bits. MSnibble = SEU counter value"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SOFTWARE_VERSION_NUMBER
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	194
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"4.4 bit format version number. Version number is hard coded in software and is stored in packet at the end of the packet collection cycle. Any software patches should include an update to this value. Current flight version is 5.3 therefore, 53h is hard coded in the Pack_it() routine of the Science Mode. Maintenance Mode version is 6.2 therefore 62h is coded."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	FLAG_WORD
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	195
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"RAM block test flag word. Memory test results. Bit representation of the results of the RAM write/read/verify block test performed after a CPU reset (HOT or COLD start). MSB (#15) represents the memory block from 7800h to 7FFFh; LSB (#0) from 0000h to 7FFh. 1 = error detected, 0 = block O.K. 0 represents a validated block, while a 1 means that the program encountered an invalid compare on at least one byte in that block area. B[0] is bits 15 - 8 of RAM test flag; B[1] is bits 7 - 0 of RAM test flag"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	STATUS_FLAGS
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	197
 BYTES	=	4
 ITEMS	=	2
 ITEM_BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Values of SFLAG1 and SFLAG2 stored at packet completion. Each flag represents four 4 bit words. B[0] = byte 0; B[1] = byte 1; B[2] = byte 2; B[3] = byte 3. SFLAG1 = (B[0] * 256) + B[1]; SFLAG2 = (B[2] * 256) + B[3]. The meanings of the individual bit settings are in Appendix A of the MOLA Flight Software Users' Guide."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SOFTWARE_VALIDITY_CHECKSUM
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	201
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Checksum (end-around-carry, word adds) calculated using start address and length from Parameter Table. One word calculated using (CHKLEN/2)# of word end-around-carry additions start at word # (CHKSTART/2). Note : CHKLEN and CHKSTART exist in the parameter table and are BYTE length and BYTE address or offset. B[0] is MSByte and B[1] is LSByte of software validity checksum."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	RECEIVED_COMMAND_COUNT
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	203
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Number of commands received in the DMA buffer, i.e., number separated by CMD_START bits set, never cleared, init = 0. Number of CMD_START bits set in the commands received buffer. Only look at the number of commands received during that RTI interval. Count performed during RTI 4ms 'quiet time'. Counter starts at 0 from a HOT/COLD start, counts up and rolls over from 0FFh to 00h."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMMAND_ERROR_COUNT
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	204
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Number of invalid MOLA specific commands received, never cleared, init = 0. Command errors counter works the same way as Received command count (see above), except, this counts the # of command errors, defined as TBD."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	TRANSMITTER_THRESHOLD_SETTING
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	205
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Value of XMITDA from Parameter table, stored at packet completion. LSB is equivalent to 1 mv. This byte reports the value of XMITDA from PARAM_TABLE. It is stored in the packet at the end of the packet collection cycle."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	RANGE_TRACKING_STATUS
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	206
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"MSB = OTS_FIRE value, bits 7654321, 1 = TRACKING, 0 = ACQ. MSB (#7) is the LSB of OTS_FIRE from PARAM_TABLE, stored at the end of the packet collection cycle. It is the value used to determine the firing status of the OTS for the first shot of the packet cycle. Bits 6-0 represent frames 7-1 tracking status. 0 means that the software was in acquisition mode for that frame, while 1 represents tracking mode."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	RANGE_GATE_TRACKER_ARRAY
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	207
 BYTES	=	48
 ITEMS	=	24
 ITEM_BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"73.728 km, 48 HISTOGRAM bins starting at HSTART. 48 sequential bins of the ranging histogram, stored after the sixth shot is collected, but before the ranging algorithm is executed on that frame's data. HSTART, from PARAM_TABLE, with the LSB cleared is the number of the first bin stored. Bins are represented as bytes, but they are stored as words. Therefore, the bytes are swapped. HSTART correction : HSTART = HSTART + 0xFFFE. The following denotes the range of each bin for each data byte (B[x]). C = 1.536km.
   B[0] : (HSTART + 1) * C; B[1] : (HSTART + 0) * C;
   B[2] : (HSTART + 3) * C; B[3] : (HSTART + 2) * C;
   B[4] : (HSTART + 5) * C; B[5] : (HSTART + 4) * C;
   B[6] : (HSTART + 7) * C; B[7] : (HSTART + 6) * C;
   B[8] : (HSTART + 9) * C; B[9] : (HSTART + 8) * C;
   B[10] : (HSTART + 11) * C; B[11] : (HSTART + 10) * C;
   B[12] : (HSTART + 13) * C; B[13] : (HSTART + 12) * C;
   B[14] : (HSTART + 15) * C; B[15] : (HSTART + 14) * C;
   B[16] : (HSTART + 17) * C; B[17] : (HSTART + 16) * C;
   B[18] : (HSTART + 19) * C; B[19] : (HSTART + 18) * C;
   B[20] : (HSTART + 21) * C; B[21] : (HSTART + 20) * C;
   B[22] : (HSTART + 23) * C; B[23] : (HSTART + 22) * C;
   B[24] : (HSTART + 25) * C; B[25] : (HSTART + 24) * C;
   B[26] : (HSTART + 27) * C; B[27] : (HSTART + 26) * C;
   B[28] : (HSTART + 29) * C; B[29] : (HSTART + 28) * C;
   B[30] : (HSTART + 31) * C; B[31] : (HSTART + 30) * C;
   B[32] : (HSTART + 33) * C; B[33] : (HSTART + 32) * C;
   B[34] : (HSTART + 35) * C; B[35] : (HSTART + 34) * C;
   B[36] : (HSTART + 37) * C; B[37] : (HSTART + 36) * C;
   B[38] : (HSTART + 39) * C; B[39] : (HSTART + 38) * C;
   B[40] : (HSTART + 41) * C; B[41] : (HSTART + 40) * C;
   B[42] : (HSTART + 43) * C; B[43] : (HSTART + 42) * C;
   B[44] : (HSTART + 45) * C; B[45] : (HSTART + 44) * C;
   B[46] : (HSTART + 47) * C; B[47] : (HSTART + 46) * C"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	HSTART_VALUE_HISTOGRAM_DUMP
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	255
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Value of HSTART from Parameter table, stored at packet completion. Stored at the end of the packet collection cycle. HSTART is used to store the Histogram dump bins on the previous frame (2 seconds earlier). HSTART is right shifted one bit and used as a word pointer, therefore, its LSB is cleared. B[0] = MSByte of HSTART; B[1] = LSByte of HSTART"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	VALID_COMMANDS_RECEIVED_COUNT
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	257
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Number of Time broadcast and Parameter update and channel on/off commands executed, never cleared, init. = 0. This is a 16 bit counter that starts at 0 after a CPU reset and rolls over from 0FFFFh to 0. Valid MOLA specific commands are defined as Channel ON/OFF commands and Parameter Update command (irregardless of parameter offset validity - invalid offsets are flagged and counted as Subcommand errors). All other MOLA specific commands are either flagged as errors or cause a mode change or CPU reset. B[0] = MSByte and B[1] = LSByte of valid cmd counter"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MEMORY_DUMP_SEGMENT
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	259
 BYTES	=	16
 ITEMS	=	8
 ITEM_BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"16 bytes read from memory space starting at ((SEQUENCE & 0x3FFh)*16), dumps 0 - 3FFFh then starts again at 0. Using the lower 11 bits of the SEQUENCE count, stored in this packet, multiplied by 16 as the starting byte address, 8 words are read from RAM and stored in the packet. The following denotes the memory address at each data byte (B[x]). C = ((SEQUENCE & 0x3FFF) *16).
   B[ 0] : C +  1; B[ 1] : C +  0; B[ 2] : C +  3; B[ 3] : C +  2;
   B[ 4] : C +  5; B[ 5] : C +  4; B[ 6] : C +  7; B[ 7] : C +  6;
   B[ 8] : C +  9; B[ 9] : C +  8; B[10] : C + 11; B[11] : C + 10;
   B[12] : C + 13; B[13] : C + 12; B[14] : C + 15; B[15] : C + 14"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMMAND_ECHO
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	275
 BYTES	=	16
 ITEMS	=	8
 ITEM_BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"First 8 command words received during current packet, only complete commands are stored, MOLA specific commands only. The software attempts to echo all valid commands. If the command will fit in the room remaining in the buffer, then it is stored and that much room is removed from that which remains in the echo buffer. If a command will not fit, then a buffer overflow is flagged, but subsequent commands that will fit are still stored in the buffer.
   B[ 0] : MSB of command word (CW) #1;
   B[ 1] : LSB of CW#1; B[ 2] : MSB of CW#2; B[ 3] : LSB of CW#2;
   B[ 4] : MSB of CW#3; B[ 5] : LSB of CW#3; B[ 6] : MSB of CW#4;
   B[ 7] : LSB of CW#4; B[ 8] : MSB of CW#5; B[ 9] : LSB of CW#5;
   B[10] : MSB of CW#6; B[11] : LSB of CW#6; B[12] : MSB of CW#7;
   B[13] : LSB of CW#7; B[14] : MSB of CW#8; B[15] : LSB of CW#8.
   NOTE: The command echo buffer is filled with zeros at the start of each packet."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_VALIDITY_CHECKSUM
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	291
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Simple 16 bit addition of entire packet contents upon completion. This location is zeroed for addition. This word is zeroed, then words 0-539 are added without carry to a variable that is initially zero. The resulting lower 16 bits are stored in this location. To verify, read, store, and clear this location. Then, word add without carry these 540 words and compare the lower 16 bits with the stored value."
END_OBJECT	=	COLUMN

OBJECT	=	CONTAINER
 NAME	=	FRAME_STRUCTURE
 ^STRUCTURE	=	"MOLASCFR.FMT"
 START_BYTE	=	293
 BYTES	=	134
 REPETITIONS	=	7
 DESCRIPTION	=	"The MOLA data described on a per frame basis; there are 7 frames in a packet; 20 laser shots per frame."
END_OBJECT	=	CONTAINER

C.3 Contents of the MOLAMNT.FMT File

OBJECT	=	COLUMN
 NAME	=	PACKET_CHDO
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	1
 BYTES	=	150
 MINIMUM	=	"N/A"
 MAXIMUM	=	"N/A"
 DESCRIPTION	=	"Packet_chdo is the compressed header data object attached to the MOLA telemetry packet by TIS."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_ID
 DATA_TYPE	=	LSB_BIT_STRING
 START_BYTE	=	151
 BYTES	=	2
 DESCRIPTION	=	"Packet_id constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."

OBJECT	=	BIT_COLUMN
 NAME	=	VERSION_NUMBER
 BIT_DATA_TYPE	=	UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	3
 MINIMUM	=	0
 MAXIMUM	=	7
 DESCRIPTION	=	"These bits identify Version 1 as the Source Packet structure. These bits shall be set to '000'."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SPARE
 BIT_DATA_TYPE	=	UNSIGNED_INTEGER
 START_BIT	=	4
 BITS	=	1
 MINIMUM	=	0
 MAXIMUM	=	0
 DESCRIPTION	=	"Reserved spare. This bit shall be set to '0'"
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	FLAG
 BIT_DATA_TYPE	=	UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	1
 MINIMUM	=	0
 MAXIMUM	=	0
 DESCRIPTION	=	"This flag signals the presence or absence of a Secondary Header data structure within the Source Packet. This bit shall be set to '0' since no Secondary Header formatting standards currently exist for Mars Global Surveyor."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	ERROR_STATUS
 BIT_DATA_TYPE	=	UNSIGNED_INTEGER
 START_BIT	=	6
 BITS	=	3
 MINIMUM	=	0
 MAXIMUM	=	7
 DESCRIPTION	=	"This field identifies in part the individual application process within the spacecraft that created the Source Packet data."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	INSTRUMENT_ID
 BIT_DATA_TYPE	=	UNSIGNED_INTEGER
 START_BIT	=	9
 BITS	=	8
 MINIMUM	=	35
 MAXIMUM	=	35
 DESCRIPTION	=	"This field identifies in part the individual application process within the spacecraft that created the Source Packet data. 00100011 is the bit pattern for MOLA."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SEQUENCE_CONTROL
 DATA_TYPE	=	LSB_BIT_STRING
 START_BYTE	=	153
 BYTES	=	2
 DESCRIPTION	=	"Sequence_control constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation."

OBJECT	=	BIT_COLUMN
 NAME	=	SEGMENTATION_FLAG
 BIT_DATA_TYPE	=	UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	2
 MINIMUM	=	3
 MAXIMUM	=	3
 DESCRIPTION	=	"For Mars Global Surveyor segmentation shall not occur. These bits shall be set to '11'."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SEQUENCE_COUNT
 BIT_DATA_TYPE	=	UNSIGNED_INTEGER
 START_BIT	=	3
 BITS	=	14
 MINIMUM	=	0
 MAXIMUM	=	16383
 DESCRIPTION	=	"This field contains a straight sequential count (modulo 16384) of each packet generated by the MOLA application process on the spacecraft. The purpose of the field is to order this packet with respect to other packets from the same application process. -- The OTS counter --."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_LENGTH
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	155
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Packet_length constitutes one of three parts in the primary source information header applied by the Payload Data System (PDS) to the MOLA telemetry packet at the time of creation of the packet prior to transfer frame creation. This field contains a sequential 16-bit binary count 'C' of the length (in octets) of the data area structure that is enclosed between the first bit of the Secondary Header and the last bit of the packet (i.e., the last bit of the Source Data field). C = ((no. of octets) - 1)."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COARSE_TIME
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	157
 BYTES	=	4
 MINIMUM	=	0
 MAXIMUM	=	4294967295
 DESCRIPTION	=	"The MOLA system time is created from the 2 time words input from the PDS time broadcast command. The MOLA time is updated 7/8 of a second after reception of the time broadcast command and 6/8 of a second after interpreting the time broadcast with S/C + 1 second to arrive at the correct time. B[0] is S/C time in seconds * 2**24; B[1] is S/C time in seconds * 2**16; B[2] is S/C time in seconds * 2**8; B[3] is S/C time in seconds."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	FINE_TIME
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	161
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Fine_time is the high-resolution timer reading taken during interrupt handling routine triggered by the trailing edge of the first 10 Hz interrupt encountered during this packet."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_TYPE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	162
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Packet type identifier byte. Distinguishes Science Mode packets from Maintenance Mode packets. Science Mode 0 Maintenance Mode = [1 = Status packet, 2 = memory dump, 3 = noise count]. Values 4 - 255 are reserved for future modes. Modes 0, 1, 2 are hard coded in the flight software. Packet type 3 is patched in when the noise count code patch is uploaded. The packet type value should be patched when a code patch occurs that affects that mode's packet content."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMPUTER_MEMORY_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	163
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #2"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMPUTER_CPU_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	164
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #1"
 END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	POWER_SUPPLY_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	165
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #4"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	'COMPUTER_I/O_TEMPERATURE'
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	166
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #3"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASER_DIODE_ARRAY_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	167
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #6"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASER_DIODE_DRIVE_ELECS_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	168
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #5"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	OPTICAL_TEST_SOURCE_LED_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	169
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #8"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	HUNDRED_MHZ_OSCILLATOR_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	170
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #7"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	START_DETECTOR_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	171
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #10"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	OUTSIDE_DETECTOR_HOUSING_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	172
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #9"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASR_RADIATR_OPP_OPT_PORT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	173
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #11"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LSER_RADIATOR_OUTPUT_PORT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	174
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #11"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	INTERFACE_PLATE_HOT_FOOT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	175
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #14"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	HONEYCOMB_PANEL_TEMPERATURE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	176
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #13"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ELECTRONICS_BOX_TOP_SC_THRMSTR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	177
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #16"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASER_CASE_HOT_FOOT_TEMP
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	178
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux A, Ch #15"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_28_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	179
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #2"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	REFERENCE_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	180
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #1"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_12_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	181
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #4"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_24_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	182
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #3"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_5_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	183
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #6"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_12_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	184
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #5"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	LASER_THERMAL_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	185
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #8"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_5_VOLT_VOLTAGE_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	186
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #7"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	POWER_SUPPLY_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	187
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #10"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	HIGH_VOLTAGE_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	188
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #9"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_12_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	189
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #12"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_12_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	190
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #11"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MINUS_5_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	191
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #14"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PLUS_5_VOLT_CURRENT_MONITOR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	192
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Mux B, Ch #13"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CURRENT_STATUS_REGISTER_VALUE
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	193
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Value read from STATUS register at end of packet collection cycle. Read STATUS register and store lower 8 bits. MSnibble = SEU counter value"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SOFTWARE_VERSION_NUMBER
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	194
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"4.4 bit format version number. Version number is hard coded in software and is stored in packet at the end of the packet collection cycle. Any software patches should include an update to this value. Current flight version is 5.3 therefore, 53h is hard coded in the Pack_it() routine of the Science Mode. Maintenance Mode version is 6.2 therefore 62h is coded."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	FLAG_WORD
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	195
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"RAM block test flag word. Memory test results. Bit representation of the results of the RAM write/read/verify block test performed after a CPU reset (HOT or COLD start). MSB (#15) represents the memory block from 7800h to 7FFFh; LSB (#0) from 0000h to 7FFh. 1 = error detected, 0 = block O.K. 0 represents a validated block, while a 1 means that the program encountered an invalid compare on at least one byte in that block area. B[0] is bits 15 - 8 of RAM test flag; B[1] is bits 7 - 0 of RAM test flag"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PARAMETER_UPDATE_CMD_COUNT
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	197
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MEMORY_LOADS_CMD_COUNT
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	199
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MEMORY_DUMPS_CMD_COUNT
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	201
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMMAND_ERRORS
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	203
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	STATUS_FLAGS
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	205
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SUB_COMMAND_ERRORS
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	207
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMMANDS_RECEIVED
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	209
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	COMMAND_ECHO
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	211
 BYTES	=	154
 ITEMS	=	77
 ITEM_BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MEMORY_DUMP_START_ADDRESS
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	365
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet type 2; noise count data starts here when packet type is 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MEMORY_DUMP_LENGTH
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	367
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet type 2."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	MEMORY_DUMP_SEGMENT
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	369
 BYTES	=	860
 ITEMS	=	430
 ITEM_BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet type 2."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	PACKET_CHECKSUM
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	1129
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Valid data for packet types 1, 2, and 3."
END_OBJECT	=	COLUMN

C.4 Contents of the MOLASCFR.FMT File

OBJECT	=	CONTAINER
 NAME	=	COUNTS
 START_BYTE	=	1
 BYTES	=	4
 REPETITIONS	=	20
 ^STRUCTURE	=	"MOLASCCT.FMT"
 DESCRIPTION	=	"This container has three sub-elements (range to surface counts, 1st channel received pulse energy, and channel number/pulse width). The three sub-elements repeat for each of 20 shots."
END_OBJECT	=	CONTAINER

OBJECT	=	COLUMN
 NAME	=	SHOT_2_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	81
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 2."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_1_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	82
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 1."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_4_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	83
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 4."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_3_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	84
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_6_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	85
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 6."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_5_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	86
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 5."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_8_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	87
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 8."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_7_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	88
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 7."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_10_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	89
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 10."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_9_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	90
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 9."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_12_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	91
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 12."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_11_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	92
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 11."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_14_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	93
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 14."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_13_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	94
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 13."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_16_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	95
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 16."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_15_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	96
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 15."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_18_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	97
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 18."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_17_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	98
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 17."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_20_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	99
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 20."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SHOT_19_LASER_TRANSMITTER_POWR
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	100
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"Transmitted laser pulse energy level. Energy reading for LASER transmit power for shot 19."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ENCODER_BITS_1
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	101
 BYTES	=	2
 DESCRIPTION	=	"This first container includes encoder start and stop bit values from Shots 1-4"

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_2_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 2. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_1_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 1. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_4_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	9
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 4. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_3_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	13
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 3. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ENCODER_BITS_2
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	103
 BYTES	=	2
 DESCRIPTION	=	"This second container includes encoder start and stop bit values from Shots 5-8"

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_6_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 6. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_5_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 5. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_8_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	9
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 8. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_7_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	13
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 7. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ENCODER_BITS_3
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	105
 BYTES	=	2
 DESCRIPTION	=	"This third container includes encoder start and stop bit values from Shots 9-12"

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_10_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 10. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_9_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 9. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_12_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	9
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 12. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_11_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	13
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 11. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ENCODER_BITS_4
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	107
 BYTES	=	2
 DESCRIPTION	=	"This fourth container includes start and stop bit values from Shots 13 -16."

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_14_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 14. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_13_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 13. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_16_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	9
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 16. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_15_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	13
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 15. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ENCODER_BITS_5
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	109
 BYTES	=	2
 DESCRIPTION	=	"This fifth container includes start and stop bit values from Shots 17-20."

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_18_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 18. Bits 1 and 2 are encoder start bits; bits 3 and 4 are encoder stop bits"
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_17_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 17. Bits 5 and 6 are encoder start bits; bits 7 and 8 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_20_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	9
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 20. Bits 9 and 10 are encoder start bits; bits 11 and 12 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	SHOT_19_ENC
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	13
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The encoder stop and start bits of the first channel to receive laser returned pulse energy for shot 19. Bits 13 and 14 are encoder start bits; bits 15 and 16 are encoder stop bits."
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	TIU_MASK_VALUES
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	111
 BYTES	=	1
 DESCRIPTION	=	"One byte to hold the TIU upper range bits and the receiver channel mask status."

OBJECT	=	BIT_COLUMN
 NAME	=	TIU_UPPER_RANGE_BITS
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	7
 DESCRIPTION	=	"The upper 3 or 3 highest ordered bits of the MOLA time interval unit (TIU). Only the largest MSTIU value read in current frame is saved. Only bits 6, 5, 4 are used."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	RECEIVER_CHANNEL_MASK_STATUS
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	4
 MINIMUM	=	0
 MAXIMUM	=	15
 DESCRIPTION	=	"The altimeter channel mask settings from the flight parameter table at the time of acquisition and storage of the TIU upper range bits. The mask indicates if the channel filter is active or is masked out to prevent triggering the TIU. Bit 3 = Channel 1; Bit 2 = Channel 2; Bit 1 = Channel 3; Bit 0 = Channel 4. 1 = channel on, 0 = channel off"
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ALGORITHM_STATUS_HIT_CNT
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	112
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	80
 DESCRIPTION	=	"Current value from the active data frame showing the number of hits counted in the possible 20 shot hits in the single frame or the number of hits summed over the possible 100 shots when in the 5 frame mode. This is an indicator of the performance of the tracking algorithm. If in the acquisition mode, this field will contain the number of shot hits from a possible 80 shots within the 4 frame acquisition window. HIT_CNT from previous frame."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_1_1ST_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	113
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 1 threshold sampled for the first 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_2_1ST_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	114
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 2 threshold sampled for the first 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_3_1ST_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	115
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 3 threshold sampled for the first 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_4_1ST_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	116
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 4 threshold sampled for the first 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_1_2ND_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	117
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 1 threshold sampled for the last 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_2_2ND_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	118
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 2 threshold sampled for the last 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_3_2ND_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	119
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 3 threshold sampled for the last 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_4_2ND_HALF_FRM_THRSHLD_SET
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	120
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The active channel threshold settings in the current frame. The setting of the Channel 4 threshold sampled for the last 10 shots in the frame"
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	RANGE_DELAY
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	121
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	65535
 DESCRIPTION	=	"Current frame range gate delay value (DELAY) as set from the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and B[1] : LSByte (bits 0-7) of the 12 bit Range Delay setting for this frame."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	RANGE_WIDTH
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	123
 BYTES	=	2
 MINIMUM	=	0
 MAXIMUM	=	4096
 DESCRIPTION	=	"Current frame range gate window or width; set at end of the previous data frame. B[0] : Bits 3 - 0 are bits 11 - 8 and B[1] : LSByte of the 12 bit Range Gate Window setting for this frame."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	ALGORITHM_STATUS_MIN_HITS
 DATA_TYPE	=	MSB_INTEGER
 START_BYTE	=	125
 BYTES	=	1
 MINIMUM	=	-32768
 MAXIMUM	=	32767
 DESCRIPTION	=	"The minimum shot hit count value required for a matched filter channel to trigger; MIN_HITS value set in algorithm from the previous data frame."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	SOFTWARE_STATUS
 DATA_TYPE	=	MSB_BIT_STRING
 START_BYTE	=	126
 BYTES	=	1
 DESCRIPTION	=	"Two of values reflecting the operation of the flight software tracking algorithm. The frame counter value and the first channel triggering at or above the minimum hit count are set from the previous data frame tracking algorithm operation. Frame counter (Frame_ctr) value from previous frame's tracking algorithm is in MS 4 bits; MIN_HITS trigger channel from previous frame is in LS 4 bits."

OBJECT	=	BIT_COLUMN
 NAME	=	FRAME_COUNTER
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	1
 BITS	=	4
 DESCRIPTION	=	"The frame counter value is set from the previous data frame tracking algorithm operation. Frame counter (Frame_ctr) value from previous frame's tracking algorithm is in MS 4 bits (7 - 4) of Software status. Bits 7 - 4 are bits 3 - 0 of frame counter."
END_OBJECT	=	BIT_COLUMN

OBJECT	=	BIT_COLUMN
 NAME	=	TRIGGER_CHANNEL
 BIT_DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BIT	=	5
 BITS	=	4
 DESCRIPTION	=	"The first channel triggering at or above the minimum hit count is set from the previous data frame tracking algorithm operation. MIN_HITS trigger channel from previous frame is in LS 4 bits (0 - 3) of Software status. Bit 0 = Channel 1; Bit 1 = Channel 2; Bit 2 = Channel 3; Bit 3 = Channel 4"
END_OBJECT	=	BIT_COLUMN
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_1_1ST_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	127
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 1 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 1."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_2_1ST_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	128
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 2 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 2."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_3_1ST_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	129
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 3 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_4_1ST_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	130
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 4 first half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over 1st 10 shots of frame for channel 4."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_1_2ND_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	131
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 1 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 1."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_2_2ND_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	132
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 2 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 2."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_3_2ND_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	133
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 3 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 3."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CH_4_2ND_HALF_FRAME_BKGRND_CN
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	134
 BYTES	=	1
 MINIMUM	=	0
 MAXIMUM	=	255
 DESCRIPTION	=	"The background energy or noise count levels for channel 4 second half-frame. Pseudo log value of NOISE(1, 2, 3, 4) at the end of a half-frame of current frame, 5.3 bit format. Plog base 2 of background count summed over last 10 shots of frame for channel 4."
END_OBJECT	=	COLUMN

C.5 Contents of the MOLASCCT.FMT File

OBJECT	=	COLUMN
 NAME	=	RANGE_TO_SURFACE_TIU_CNTS
 DATA_TYPE	=	MSB_UNSIGNED_INTEGER
 START_BYTE	=	1
 BYTES	=	2
 DESCRIPTION	=	"The laser shot surface ranging measurement in Timing Interval Unit (TIU) counts. The least significant 16 bits of TIU (LSTIU), stored for every shot. B[0] = Bits 15-8 of TIU reading; B[1] = Bits 7-0 of TIU reading."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	FIRST_CH_RCVD_PULSE_ENRGY
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	3
 BYTES	=	1
 DESCRIPTION	=	"The level of return, reflected energy as received by the first channel and matched filter to trigger. Lowest numbered non-zero energy reading for each shot."
END_OBJECT	=	COLUMN

OBJECT	=	COLUMN
 NAME	=	CHANNEL_NUMBER_PULSE_WIDTH
 DATA_TYPE	=	UNSIGNED_INTEGER
 START_BYTE	=	4
 BYTES	=	1
 DESCRIPTION	=	"The number of the first channel to trigger and the pulse width of the returned energy. Bits 8-7 : channel number - 1; bits 6-1: pulse width"
END_OBJECT	=	COLUMN