Number Date Reviewer Action Assignee Response Resolution
1 6/5/1900 Rob Lampereur Create a linkage in the code between the Design Document and the 8051 assembly code. To make the logic flow easier to map between the design document and and code itself.

Create labels within the code, which we reference within the document.
Daniel Blackman This will be implemented, but in a gradual fashion - with completion planned for when code goes to Level 3.

Assigned to Ken Brownsberger:

In DCE- SDD there will be placed Subroutine names and package names.
2 6/5/1900 Rob Lampereur Describe the Rational behind the Main Loop order, and that it is arbitrary. Basically, add into your comments that these are event driven activities - so the order is arbitrary. Daniel Blackman Comment added to MAINROUTINE comment block


Michelle (7/27/2000) Add more information - what are the flag settings, what are the inputs and outputs.

Say that the sequence is arbitrary - and any sequence of events could be called in any order.

Michelle - Please assist by providing some text.

Verbiage should clear up the confusion about processing the commands on a once per second boundary.
5 6/5/1900 Chris Dorato For every subroutine in the code, there should be a summary block describing what the subroutine is and what it does, what the inputs and outputs are, and what the revision history is - starting from this point in time onward. Daniel Blackman Comment blocks added to every subroutine, some macro definitions, and main loop. To properly fill-in each comment block will take some time, but I will revise comment blocks as development continues...

Please add a CALLED BY line, which includes the subroutine’s that call it.

Please add the DM-05 COMMAND (and TLM) names to the appropriate subroutine banners.

- Ken B. Can provide INDEX file for OPCODE to COMMAND.
12 6/5/1900 Art Rankin For the section of FSW that reads and populates the PH data buffers, look at the BOOT/OPERATE flag - and if in BOOT, do NOT read the PH data and do NOT overwrite the buffer area. Daniel Blackman This will be implemented, but has not been added to the code yet. (As of 7/14/2000.) OPEN
14 6/5/1900 Ken Brownsberger If a properly formatted command is sent, but it does not exist in the OPCODE list, then report a diagnostic and an HST error. (Daniel is recommending Diagnostic 11 - command opcode not implemented.) Daniel Blackman Separate COS and GALEX command tables have been implemented to support this AI.

Examine JMP table to make certain only ICD valid commands are implemented in the JMP table, and that every other OPCODE results in a INVALID COMMAND diagnostic.
15 6/5/1900 Daniel Blackman SPARE commands currently in the command jump table should be replaced with room for future implementation of TBD commands. For now, they should be basically function as a NOOP - but, also report an illegal command diagnostic. (See previous AI). Daniel Blackman In progress...

Please update the comments - keeping the “HISTORY” of the previous use of the OPCODE, but now include the message that they are NOT used for COS.


Where there is a NO-OP for OP-CODE that’s not used for COS, replace with a call to MODE. (This performs a NO-OP, and issues a Diagnostic.)

Also, all SPARE_CODE OP-CODE’s will be removed.
16 6/5/1900 Art Rankin Confirm that a HSK packet is returned as a result of the JMP command. i.e., if we jump from BOOT to OPERATE, we get a HSK packet - without having to send another follow-up command, like a NOOP.
Daniel Blackman Daniel is currently looking at this, and will either implement a fix - or will notify Allison that she needs to modify her code to take action if a HSK packet will not be delivered. OPEN
17 6/5/1900 Rob Lampereur Add functionality to make the Test Commands only usable if a TEST ENABLE command (a new command) has been sent. The default is that Test Commands are DISABLED. Also, when dropping to BOOT, Test Commands should be DISABLED. Daniel Blackman Test commands will be included in code only by a non-flight compiler directive. Thus, no test commands will be included in the FSW burned into PROM or in the FSW loaded into RAM for on-orbit operations. FSW with test commands would only be loaded during early, ground test and debug situations. See AI #7. OPEN
20 6/5/1900 Rob Lampereur Set the High-water mark to just below MAX in the PROM, but copy it over to the patchable constants area, and use this value for your CHECK_STACK code. This way, you can patch it to a low value to verify that the DIAGNOSTIC 7 function is working properly.

Also, add a TLM item for the stack max, so that this can be bundled with DIAG 7 for use with an HST error.
Daniel Blackman Ability to set High-water Mark via patchable constant will be tested for viability. If functions properly, with no adverse side effects - will implement, and will use patchable constant value to bundle with DIAG 7 for HST error of this type. OPEN
22 6/6/1900 Michelle Troeltzsch Add more text to the interrupt comments (starting at line 2252 of INITIALZ.LST). Explain what the interrupt does. If need additional space, put in on the line above.

Daniel Blackman Comments added.

Michelle says, “Nice Start...” Complete the job. e.g., Timer1, Timer2. Include if the ISR is NOT used for COS.
23 6/6/1900 Michelle Troeltzsch Scrub all “bug” and “debug” comments throughout the entire code package. If a problem that your tracking with these kinds of comments still exists at the time the code is ready to go to Level 2 CM, then the problem needs to be tracked officially and paperwork generated.

Also, don’t leave dangling comments about ‘bugs’ and ‘possible fixes. If the bug was fixed, update the comment and say it was fixed.
Daniel Blackman Debug comments or lines removed throughout. Word 'debug' is used in some comments that do not actually indicate debug code. Other debug code is simply commented out, but preserved to demonstrate how some debug function could be performed.

Specific addition on 7/25/2000:

Clear up confusion regarding the comment “mysterious reset bug” on line 3342 of INITIALZ.LST (V17055).

Describe WHY you turn off interrupts here. Also, if you want to leave the “mysterious reset bug” - add additional comments that describe how this bug has been fixed... and why this is no longer a problem.
24 6/6/1900 Art Rankin Generate a ‘lien’ list of bugs or problems that exist in the code when it is brought to Level 2. Maintain that list and update it appropriately so that it can be reviewed at the time the code is brought to Level 3. (Level 3 = Delivery to BATC.) Daniel Blackman This will be done when code goes from Level 1 to Level 2, and will be part of the delivery package when code goes to Level 3. As of 7/14/2000, code is at Level 1 - so no “formal”, project-wide lien list exists yet. OPEN
26 6/6/1900 Ken Brownsberger Remove the functionality at line 3389 of INITIALZ.LST. Do NOT perform the NOTSAFE. We will ALWAYS shut off HV, Door, etc... Daniel Blackman The XSPEC assembly control shows the old code and the new code. I want to document how I would have designed to code to be tolerant of some kinds of errors, because I believe it to be a better, safer design for general use. However, I will acquiesce to the review board and leave XSPEC turned off for flight code and qual testing. XSPEC will be turned on for use in the lab during detector development. Warning: leaving these features out of the boot PROM removes any possibility of allowing the detector to continue transmitting science data after a reset, even a spurious reset caused by SEU. OPEN
29 6/6/1900 Rob Lampereur Lines 4378 of COMMANDS.LST

Fix the code if the lock bits are corrected in hardware. Do not unlock the “Protected Control Register”, unless you need it.

If hardware is not corrected, document WHY you are doing what you are doing

See also AI 46
Daniel Blackman The purpose of the lockbit is to prevent inadvertent hardware operation of critical items with a COPY or UPLOAD command. As it turns out, the Control Register that has the lock-bit contains the Actuator Enable, Actuator ON and Door Limit Switch Override commands, which are exactly the hardware operations that should only be used in emergency situations - and thus, would benefit with this added layer of security.

All commands that go through the Control Registers (both protected and unprotected), by default, unlock and then relock the register - which simplifies the FSW design, and maintains the safety for which the lock-bit was implemented.

Resolution of this AI is to update the DCE SDD to match the hardware design, and the FSW design. Also, update the comments in the DCE FSW to clearly describe management of the control register.

See UCB PFR#0004 documents the wiring of the Control Registers.
31 6/6/1900 Rob Lampereur Lines 2584 and on, in INITIALZ.LST

Add comments in FINDRESETTYPE, which indicate what kind of reset took place - and why.
Daniel Blackman Comments added


Add additional comments describing HOW you determine which kind of reset occurred.

e.g., Line #2356 (V17055): If all the bytes in the pattern table match all the bytes in the test table - then we assume that a reset other than a Power-On reset occurred.
32 6/6/1900 Michelle Troeltzsch Change text of “Record this dreadful event”, to something along the lines of issue a DCE diagnostic, and - if appropriate - Report an HST error. Daniel Blackman Replaced the word 'dreadful' with 'diagnostic'. This is a macro that does a general purpose function. Appropriate comments are near the macro call describe the nature of the diagnostic.


From 7/25/2000

Change comment at line 2521 COMMANDS.LST (V17055) from dreadful to diagnostic.
34 6/6/1900 Ken Brownsberger Assigned to: Ken B.

Update DCE-Reset diagram to include the 255 POR check.
Ken Brownsberger SDD still needs to be updated. OPEN
36 6/6/1900 Ken Brownsberger Flight CODE should not decide what flight hardware we’re running on because of hardware talkbacks, and then set behavior for future operations because of this determination.

The SETPROJECT, at line 4184, functionality should NOT test the RXD1 line and determine whether or not the DCE is COS or GALEX.

A suggestion was made to use conditional compiles to generate code sets that are unique to the different PROJECTS, and different lab hardware environments. This is to remove the possibility of executing the wrong code set for COS on the flight hardware. (Either during test - or worse - on orbit.)

Daniel Blackman Implemented as per item 26.


Action Reopened: Remove the SETPROJECT functionality - instead, use conditional compiles, so that we can ONLY run COS code. (i.e., ONLY COS code is available in the PROM and the OPERATE images.
39 6/6/1900 Rob Lampereur Line 3204, (CLRSOMEBITS) in INITIALZ.LST.

Document which bits you’re clearing and why they’re being cleared.
Daniel Blackman Comments added

Will be discussed when we discuss the CRP algorithm.
41 6/6/1900 Ken Brownsberger Assigned to Ken B:

Change 12 seconds to 10 seconds in Figure 4.2-1 of SDD.

Remove “background calculations” in of SDD.

Remove the “Start CRC calculations” in, in the minimal initialization sequence. (Change to Setup or Initialize for CRC calculations.)
Ken Brownsberger SDD needs to be updated. OPEN
44 6/6/1900 Michelle Troeltzsch Try to scrub any and all comments in code that are no longer valid - especially those comments that are invalid because the code the comment was referring has been removed. Daniel Blackman At least some comments of this sort have been removed from code. Further updates to continue as code is finalized. OPEN
46 6/6/1900 Ken Brownsberger Assigned to Ken B.:

Is the protected control register wired incorrectly for the DCE? If so, when is this going to be fixed?

Controls 1 should have been locked.
Controls 2 currently has the lock.

Consult with John Andrews, Barry Welsh, and electrical engineers working at UCB.

Daniel currently implements an undesirable workaround because of this problem. Make certain that he only does this if it the hardware is NOT going to be fixed. If the hardware does not get fixed - and the wrong controls register is stuck with the lock... then consider unlocking it initially, and keeping it unlocked indefinitely.
Ken Brownsberger See Response for AI#29 OPEN
47 6/6/1900 Ken Brownsberger Assigned to Ken B.:

Is there a problem in the Actel for the PROM enable? Does UCB have a problem with the PROM that has not been documented, and that Daniel has created code to fix?
Ken Brownsberger See UCB ECO#0028. Currently, PROM enable command causes DCE to hang. Hardware fix will either involve an ACTEL change or a board-level change.

In any event, PROM enable functionality (i.e., memory bank switching) is being dropped from the DCE - so the DCE FSW will not support this capability, and the FSW will be changed accordingly to drop these features.
49 6/6/1900 Allison Elliot Add a banner comment to the command traffic ISR’s on 2307 of INTERNAL.LST. (See previous AI on this topic) Daniel Blackman Subroutine banners added, to be filled-in during development OPEN
50 6/6/1900 Ken Brownsberger Assigned to Ken B.

Get the COMMON.INC file and scrub it with the existing DCE HW/SW Interface Document. Provide any inputs/updates to Rich B.
Ken Brownsberger Open. Due to personnel changes, we are in the process of finding a new “author” for the DCE HW/SW Interface Document OPEN
51 6/6/1900 Art Rankin Add a counter to the Command Traffic ISR, so that we can keep track of how many Command words are rejected by the CHECKRXD routine. (Line 2417 of INTERNAL.LST) Daniel Blackman Not yet implemented as of 7/14/2000. Will be a variable that we can place a memory monitor on to inspect value. OPEN
52 6/6/1900 Ken Brownsberger Assigned to Ken B.:

Work with Daniel to fix Logic Flow of Timer Tick ISR in SDD. Current flow diagram does not match 8051 code.
Ken Brownsberger SDD needs to be updated. OPEN
54 6/6/1900 Allison Elliot There needs to be logic at line 4489 of COMMAND.LST, so that the
SETB F0 is not set when the CRC parameter is not set to zero.
Daniel Blackman Done.


Needs to be reexamined during review of CRC code.
55 7/27/2000 Michelle Troeltzsch Everywhere there is a JNB based on PROJECT, please indicate exactly where the code will go for COS. (e.g., Say, for COS go here....)


Also, CLEARLY indicate where the PROJECT bit is set. (Separate activity.)

In the subroutine header for ZAP_INTERNAL_MEMORY, tell where to go to see how these bits are set. (e.g., the HW/SW IFD)
Daniel Blackman
56 7/27/2000 Will Clement Issue involving Relocatable Code Segments

Will and Daniel need to discuss off-line Will’s concern about Relocatable Code Segments. Upon resolution of their discussion, both should contact Ken B. and relay the outcome of their conversation - and what, if any, changes to the DCE FSW are being recommended as a result.
Daniel Blackman
57 7/27/2000 Will Clement Add a LABEL next to every SUBROUTINE name, which has the DM-05 name for the LABEL. Daniel Blackman Daniel is approaching limits to the SYMBOL table information in the Archimedes development environment, so this scheme may not be possible. (Possible remedy involves response to AI #58) OPEN
58 7/27/2000 Michelle Troeltzsch Assigned to Will Clement:

Examine the possibility of moving to a Franklin Compiler.

Portion assigned to Will: Show that an “identical” HEX file can be created with the Franklin Compiler.
Will Clement
59 7/27/2000 Michelle Troeltzsch Remove all “TABS” from the code. Make sure no ‘TABS’ are included in the source code.


1. Use a new editor...
2. Or, create a tool to remove the ‘TABS’, and include this tool in the development process.
Daniel Blackman
60 7/27/2000 Michelle Troeltzsch Make sure that all Interrupts that are not currently being used return an HST error if they are inadvertently called.

e.g., vT1_ISR, vSER_ISR

Chris feels that this represents an existing requirement to produce an “HST Error” when we are executing a section of code unexpectedly.

Michelle wants to know which interrupts are occurring, and how many. So make sure we report which ones... and how many you get of them...

1. Each different type of unexpected interrupt needs to be uniquely identified and reported.
2. Also, the number of interrupts of each type needs to be identified and maintained in memory.
Daniel Blackman
61 7/27/2000 Allison Elliot Assigned to Ken B.:
Provide Art the most recent DCE TLM database. Send it to him in PDF

Assigned to Art Rankin:
Provide an evaluation of the DCE TLM items - and give suggestions as to which items you feel should and should not be part of the standard packet. Give to this list to Ken.

Assigned to Geoff Gaines and John Vallerga:
Based on Art’s Recommendations, create a list of the FUV DET HSK items that will be telemeter to the Ground as part of the normal HSK packet, and what rate these items need to be updated.

Art Rankin Ken B. provided recent DCE TLM items to Art Rankin. Action is currently awaiting Art’s recommendations. OPEN
63 7/27/2000 Ken Brownsberger Assigned to Allison:

Make sure the following following DCE commands in DM-05, appendix B are corrected:


LFRMPWR OPCODE should be DA, not AD

LFGBWK parameter 3 should be DIR, not empty
LFGEWK parameter 3 should be DIR, not empty

LFHVOFF should be removed.
Allison Elliot
65 7/28/2000 Art Rankin Possibly implement a BOOT Table // Operate Table approach - possibly as a conditional compile - for the BOOT and Operate commands. Daniel Blackman
66 7/28/2000 Will Clement Recommendation that the “CLR A” be removed at line 2686 (V17055) within NO_OPER. Daniel Blackman
67 7/28/2000 Michelle Troeltzsch The text for the HKPFULL command needs to be updated to include the text that it is only used to send a HSK packet. It is basically a NO-OP that increments the CMD counters.

The text for the NO_OPER command needs to be updated to include text that says it sets a bit so that the CMD REC and CMD EXC counters are not incremented in the CMD Processing Task.

As a start, include the headers from the Command Macro Sheets (from DM-05).
Daniel Blackman
68 7/28/2000 Allison Elliot Correct the logic in the start of the UPLOAD command, so that the CRC checking is done properly. i.e., If the CRC parameter is zero - then you ignore the CRC check to decide if the code should be uploaded or not.

This CMD is not COS ready and should be re-reviewed when the command logic matches the COS requirement for the UPLOAD command.
Daniel Blackman
69 7/28/2000 Michelle Troeltzsch Michelle wants ZAP_TS30 moved to the COMMANDS.LST file - so it’s easier for her to find for maintenance and problem solving.

Also change the name from ZAP_TS30 to LFDDIAGC, as the name is not used elsewhere.

Also, remove the comment that says “informally so far”... as it no longer applies.


Michelle wants the inputs and outputs to include anything that a subroutine reads from or writes to... e.g., ZAP_TS30 should include TS30, tDIAG0, tDIAG1, etc...
Daniel Blackman
70 7/28/2000 Art Rankin Assigned to Allison Elliot:

Update DM-05 for LFDDIAGC to note that there is a risk of missing an unreported diagnostic during the interval that it takes for this command to execute.
Allison Elliot
71 7/28/2000 Allison Elliot In the command DUMP:

Update the comments for StartAddr and Endaddr to refer to Length - as this is how the code works.
Daniel Blackman
73 7/28/2000 Daniel Blackman Add a range check for DUMP length so that if the length is zero, then a diagnostic is issued. i.e., Do not allow a parameter of zero. Daniel Blackman
74 7/28/2000 Allison Elliot DUMP code seems to indicate that you do not, in fact, compute a CRC as part of the code - which you are required to do. Correct the code to compute the CRC. Rearrange the code - which is almost correct, but in the wrong order.

(See code surround lines 5226 in COMMANDS.LST (V17055))
Daniel Blackman
75 7/28/2000 Michelle Troeltzsch Update the comments for SENDHKP (Line 3660 of EXECUTIV.LST (V17055)), so that it clearly states that two bytes are being sent across the interface. Daniel Blackman
76 7/28/2000 Will Clement Clear the SPECIALF bit before you call the TABLE_COPY - so that you are guaranteed that the bit has the correct value for the TABLE_COPY execution. Daniel Blackman
77 7/28/2000 Michelle Troeltzsch The subroutine FROMCODE (including FROMC2DE) should be moved into BYTE_MOVE. (Near line 3411, INTERNAL.LST (V17055)).

Also, when moving FROMCODE and FROMC2DE - change the AJMP to a JMP.
Daniel Blackman
78 7/28/2000 Michelle Troeltzsch Consider moving “to a more appropriate location”, the PUSHDPTR, PUSH DPL, PUSH DPH and POPDPTR, POP DPH, and POP DPL in the LCOPY subroutine.

Or, conversely, leave them here and add additional comments to explain why this should be done here.
Daniel Blackman
79 7/28/2000 Allison Elliot Correct Subroutine banner and the descriptive text. (The banner is associated with MSG_JMPG, not JMPCODE.) Daniel Blackman
80 7/28/2000 Allison Elliot Assigned to Ken B.

Change the DCE SDD for LFDJMPCS:

If in BOOT, do nothing (NOT jump to the predefined entry point of boot.)
Ken Brownsberger
81 7/28/2000 Michelle Troeltzsch Update the comments in ZAPCODECRC so that you are explaining why you suppress the CRC DIAGNOSTICS in this case.

Daniel Blackman
82 7/28/2000 Art Rankin Implement a system - tied to the activity of the CRC checking process - so that we can disable getting an HST Error. And that we can turn it on back on whenever we want. Daniel Blackman
83 7/28/2000 Michelle Troeltzsch In REPORT_DIAGNOSTIC, make sure you implement the scheme whereby not ALL diagnostics result in HST errors. Daniel Blackman
84 7/28/2000 Michelle Troeltzsch In JUSTTOGL, add information that you are incrementing the command executed counter because you are jumping code space, and the usual method of incrementing the command executed counter will be skipped.

**** IGNORED ****

This incrementing will take place in the LOCAL_INT, but only if the CMD_ERR is set. This has yet to be implemented.
Daniel Blackman
85 7/28/2000 Michelle Troeltzsch In JUSTTOGL, (line 4986 of V17055), describe the importance of the the #0B0h address in the JUMP CODE process.

e.g., This corresponds to the loader parameter file, and is either B0 or F0.

B0 - Set up reentry to lower code area.
F0 - Set up reentry to upper code area.
Daniel Blackman
86 7/28/2000 Art Rankin Assigned to Allison:

Talk to Art Rankin and capture his thoughts on how to enhance verbiage in DM-05 for LFDMADDR so that a user has a clear understanding how to set parameters for the command so that they can monitor the memory areas they're interested in...
Allison Elliot
87 7/28/2000 Michelle Troeltzsch For the Memory Monitor Command (LFDMADDR), make sure that you describe in your comments how precedence in the processing of CODE/DATA/INTERNAL/EXTERNAL parameters, results in the proper bits being reflected in housekeeping.

Daniel Blackman
88 8/1/2000 Michelle Troeltzsch Remove AJMP SOFT_RESET at line 2019 of COMMANDS.LST (V17055). This could lead to an infinite loop.

Second, change the DIAGNOSTIC at 2022 of COMMANDS.LST (V17055), from Diagnostic 1 (Bad upload length) to a new Diagnostic - e.g., 31 - Reset Command Failed.

Third, add the SOFT_RESET to the subroutine banner.
Daniel Blackman The changes Daniel has made are fine. Michelle requests that the comments be enhanced to show a calculation for the length of the delay in the second loop.

Also, in the Banner, the names LFDRSTP and LFDRSTW need to be corrected. (The ‘E’ needs to be dropped.)
89 8/1/2000 Will Clement Resolve the difference in the number of parameters for SAA_TRIGD MACRO (line 2719 of EXECUTIV.LST V17055) - with the calls to SAA_TRIGD (lines 2895 and 3046 of EXECUTIV.LST V17055.) Daniel Blackman
90 8/3/2000 Michelle Troeltzsch Assigned to Allison Elliot:

Update DM-05 for LFDUPLOD...

Here is the change: If we pass a CRC parameter of 0, then the HSK item LFMXFER will remain the same as what was previously in HSK. The LFDUPLOD command will NOT update it’s value.
Allison Elliot
91 8/3/2000 Steve Nissan Add WD_DISABLE and WD_ENABLE to the Subroutine WD_STATE, as they are called from other areas of the code. (e.g., The SETPROJECT subroutine and the Initialization Sequence.) Daniel Blackman
92 8/3/2000 Ken Brownsberger Lines 2774 - 2786 of COMMANDS.LST (V17055)

1. Make sure there is only one return point for the WD_STATE (and subsequent) subroutines.

2. Create a WD_EXIT label for this return.

3. Change the label WD_ENABLE to WD_INIT.

4. Create a new label, WD_ENABLE, which contains the MOV CCAPM4, #48h (line 2783) functionality - so we could call this subroutine for testing purposes.

5. Make sure that the call to WD_ENABLE in SET_PROJECT, is changed to the new label WD_INIT.
Daniel Blackman
93 8/8/2000 Ken Brownsberger 1. Update the comments in the PATCHCST.LST (Line 487 of V17088) to define the memory regions for COS. e.g. There is no MASK A or MASK B regions.

2. Describe how the various regions are linked together.

3. Describe how the computed CRC values for the differnet regions are reported in TLM.
Daniel Blackman
94 8/8/2000 Michelle Troeltzsch Explain in the CALC_CRC banner description, how this command hijacks the background CRC - computes the region specified, then returns control to the background CRC task. Daniel Blackman
95 8/10/2000 Michelle Troeltzsch In CALC_CRC, put a comment describing where the RET at Line 3008 of COMMANDS.LST (in INIT_REGION:) takes us. During today’s code walk-thru you showed us that the RET takes us back up to just after the call of COMMAND_VECTOR (at Line 6445.)

Note: Line Numbers refer to V17088.
Daniel Blackman
96 8/10/2000 Allison Elliot For the CALC_CRC task, make sure you follow the DM-05 (and DCE SDD) implementation by zero’ing out the calculated CRC value reported in HSK (i.e., LFMXFER, but see AI#99) at the start of process. As per the interface agreement, the CS will be monitoring the HSK value - and will use the change of this value from zero to a new value as an indication that the commanded CRC has completed. Daniel Blackman
97 8/10/2000 Will Clement There are two SAVE_CRC subroutine labels in the V17088 code - one in INTERNAL.LST (Line 3223) and one in COMMANDS.LST (Line 5972).

Either consollidate to one routine, or rename one of them.

If you consolidate the routines, and remove the one found in COMMANDS.lST, make sure you populate the DPTR before you call SAVE_CRC.
Daniel Blackman Per verbal discussion during 8/10/2000 telecon, Daniel will probably conslidate them into a single subroutine by removing the one in COMMANDS.LST OPEN
98 8/10/2000 Michelle Troeltzsch Remove the variable tSAVE_CRC and just use tDMSAV. Note: This variable is the used for the TLM identifier LFMXFER (although see name discrepancy in AI #99), and is used for the computed CRC value for both the UPLOAD and the CALC_CRC commands. Daniel Blackman
99 8/10/2000 Allison Elliot Figure out what you’re going to call the TLM item which provides the calculated CRC in HSK (This is the TLM used by both the UPLOAD command, and the CALC_CRC command. ) Currently there is a discrepancy in the various documentation sources. For example, your HSK TLM list says in the FUV ICD says it is LFMCRC. This is also what is contained in the UCB Command and Telemetry database. However, within the Diagnostic list of the FUV Detector, it says the TLM item is LFMXFER.

Note: DM-05 says LFMXFER, and the DCE SDD says LFMXFER. Thus, it would be preferrable if you chose to call it LFMXFER.
Geoff Gaines