NASA / GSFC
						CODE 512
					  GREENBELT, MD. 20771



















		     ***************************************************************
		     *								   *
		     * NEAR INFRARED CAMERA AND	MULTI-OBJECT SPECTROMETER (NICMOS) *
		     *								   *
		     *			     FLIGHT SOFTWARE			   *
		     *								   *
		     *				01 JAN 95			   *
		     *								   *
		     *			   PDL/81 V2.0(vb).908			   *
		     *								   *
		     *				 5332-PD8			   *
		     *								   *
		     ***************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  1.001
01 JAN 95	TABLE OF CONTENTS


TABLE OF CONTENTS
-----------------


   NICMOS FLIGHT SOFTWARE INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . .	 2

NICMOS COMMON  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	 3

   ZIDATA  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	 4
   NFWORLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	 5
   NFACTION  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	 6
   NFPARITY  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	 7

CONTROL	SECTION	COMMUNICATION PROCESSOR	 . . . . . . . . . . . . . . . . . . . . . .	 8

   NFCSCOMM  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	 9
   NFALIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	10
   NFSLEW  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	11
   NFCSSEND  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	12

MACRO COMMAND PROCESSOR	 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	13

   NFMACRO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	14
   NFTIMECU  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	15
   NFLOADED  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	16
   NFUNLOAD  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	17

SAFING PROCESSOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	18

   NFSAFING  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	19

DELAYED	COMMAND	SEQUENCE STORED	IN NICMOS MEMORY . . . . . . . . . . . . . . . . . .	20

   NCOMSKEL  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	21
   NMACSKEL  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	22

SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY) . . . . . .	23

   ZIDELT  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	24
   ZILIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	25
   ZIREF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	26
   ZIRTCC  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	27
   ZISAFE  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	28
   ZISEF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	29
   ZISLEW  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	30
   ZISPED  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	31
   ZIPITR  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	32
   ZISTAT  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	33

Segment	Reference Trees	 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	34


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  1.002
01 JAN 95	TABLE OF CONTENTS


Index to Data Items  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	35

Index to Flow Segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .	36


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  2
01 JAN 95


     NICMOS FLIGHT SOFTWARE INTRODUCTION


     #####################################################################################################
     #													 #
     #	1												 #	   7
     #	2	  THIS PDL DOCUMENT DESCRIBES THE FLIGHT SOFTWARE FOR THE NEAR				 #	   8
     #	3    INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS) FOR	THE HUBBLE			 #	   9
     #	4    SPACE TELESCOPE.										 #	  10
     #	5												 #	  11
     #	6    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX		 #	  12
     #	7    X										  X		 #	  13
     #	8    X	       THIS IS RELEASE 1.0 OF THE NICMOS NSSC-I	FLIGHT SOFTWARE	DESIGN	  X		 #	  14
     #	9    X			       DATED JANUARY 1,	1995				  X		 #	  15
     # 10    X										  X		 #	  16
     # 11    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX		 #	  17
     # 12												 #	  18
     # 13	 THE NICMOS FLIGHT SOFTWARE IS COMPOSED	OF THREE PROCESSORS, AND A			 #	  19
     # 14    READ/WRITE	COMMON AREA CONTAINING DATA ACCESSIBLE TO ALL PROCESSORS.			 #	  20
     # 15												 #	  21
     # 16    THE PROCESSORS AND	THEIR NUMERIC ID'S ARE:							 #	  22
     # 17												 #	  23
     # 18	1) NFCSCOMM    - PROCESSOR # 21								 #	  24
     # 19	2) NFMACRO     - PROCESSOR # 22								 #	  25
     # 20	3) NFSAFING    - PROCESSOR # 23								 #	  26
     # 21												 #	  27
     # 22	  THE NICMOS NSSC-I FLIGHT SOFTWARE RETRIEVES THE HST TAKE DATA	FLAG			 #	  28
     # 23    FROM THE SSM PIT, AND FORWARDS THE	STATE OF THE TDF TO THE	NICMOS				 #	  29
     # 24    INSTRUMENT	WHENEVER THE STATE OF THE TDF CHANGES AND THE INSTRUMENT IS IN			 #	  30
     # 25    OPERATE MODE OR AT	A TRANSITION FROM BOOT MODE TO OPERATE MODE.				 #	  31
     # 26												 #	  32
     # 27	  THE NICMOS NSSC-I FLIGHT SOFTWARE RECEIVES SPECIAL ENGINEERING DATA ONCE		 #	  33
     # 28    EVERY HALF	SECOND FROM THE	NICMOS INSTRUMENT THAT MAY CONTAIN THE FOLLOWING		 #	  34
     # 29    EMBEDDED REQUESTS:										 #	  35
     # 30												 #	  36
     # 31	1) A REQUEST TO	SAFE THE NICMOS	INSTRUMENT						 #	  37
     # 32	2) A REQUEST TO	SUSPEND	THE NICMOS INSTRUMENT						 #	  38
     # 33	3) A REQUEST TO	POST AN	EXECUTIVE STATUS BUFFER	MESSAGE					 #	  39
     # 34	   FOR THE NICMOS CONTROL SECTION FLIGHT SOFTWARE					 #	  40
     # 35	4) A REQUEST FOR AN HST	SMALL ANGLE MANEUVER SLEW IN PURSUIT OF	NICMOS			 #	  41
     # 36	   TARGET ACQUISITIONS.									 #	  42
     # 37												 #	  43
     # 38	  A CONFIRMATION MESSAGE IS SENT BACK TO THE NICMOS INSTRUMENT UPON RECEIPT		 #	  44
     # 39    OF	A SLEW REQUEST.	NO FURTHER SLEW	REQUESTS WILL BE PROCESSED UNTIL THE CONTROL		 #	  45
     # 40    SECTION ACKNOWLEDGES THE CONFIRMATION BY CLEARING THE DETECTOR NUMBER OF THE		 #	  46
     # 41    PREVIOUS SLEW.										 #	  47
     # 42												 #	  48
     # 43	  THE FOLLOWING	INFORMATION IS ALSO PRESENT IN THE SPECIAL				 #	  49
     # 44    ENGINEERING DATA:										 #	  50
     # 45												 #	  51
     # 46	1) THE REASON FOR THE MOST RECENT CONTROL SECTION RESET					 #	  52
     # 47	2) A WORD INDICATING THE RESULT	OF THE MOST RECENTLY COMMANDED CHECKSUM			 #	  53
     # 48	   TEST	PERFORMED BY THE CONTROL SECTION FLIGHT	SOFTWARE				 #	  54
     #													 #	  55


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  2.001
01 JAN 95


     NICMOS FLIGHT SOFTWARE INTRODUCTION   (continued)


     #													 #
     # 49	3) THE CONTROL SECTION MINOR FRAME COUNTER						 #
     # 50	4) THE CONTROL SECTION SOFTWARE	MODE (BOOT/OPERATE)					 #	  56
     # 51												 #	  57
     # 52	  THE NICMOS NSSC-I FLIGHT SOFTWARE CHECKS THE REASON FOR THE CS RESET AND		 #	  58
     # 53    LOOKS UP THE ACTION TO TAKE IN ONE	OF FOUR	TABLES.	 THERE ARE TWO TABLES FOR		 #	  59
     # 54    HARDWARE RESETS, ONE FOR WHEN THE INSTRUMENT IS NOT SUSPENDED AND THE OTHER FOR		 #	  60
     # 55    WHEN THE INSTRUMENT IS SUSPENDED.	THERE ARE TWO TABLES FOR SOFTWARE RESETS, ONE		 #	  61
     # 56    FOR WHEN THE INSTRUMENT IS	NOT SUSPENDED AND THE OTHER FOR	WHEN THE INSTRUMENT		 #	  62
     # 57    IS	SUSPENDED. THE ACTION CAN BE POST AN EXECUTIVE STATUS BUFFER ENTRY, POST AN		 #	  63
     # 58    EXECUTIVE STATUS BUFFER ENTRY AND SUSPEND THE NICMOS INSTRUMENT, POST AN			 #	  64
     # 59    EXECUTIVE STATUS BUFFER ENTRY AND SAFE THE	NICMOS INSTRUMENT, OR DO NOTHING.		 #	  65
     # 60												 #	  66
     # 61	  THE NICMOS NSSC-I FLIGHT SOFTWARE SETS NICMOS	EVENT FLAG 1 IF	THE CHECKSUM		 #	  67
     # 62    WORD EQUALS HEX 49, DOES NOT DO ANYTHING IF THE WORD EQUALS ZERO, FOR ANY OTHER		 #	  68
     # 63    VALUE IT RESETS NICMOS EVENT FLAG 1, POSTS	AN EXECUTIVE STATUS BUFFER MESSAGE		 #	  69
     # 64    AND SETS NFCKSMFL_	TO 1 INDICATING	THE CHECKSUM FAILURE.  NFCKSMFL_ MUST BE		 #	  70
     # 65    CLEARED BY	THE GROUND.									 #	  71
     # 66												 #	  72
     # 67	  THE NICMOS NSSC-I FLIGHT SOFTWARE USES THE CONTROL SECTION MINOR FRAME		 #	  73
     # 68    COUNTER AND THE CONTROL SECTION MODE AS THE KEEP-ALIVE SIGNAL FROM	THE CONTROL		 #	  74
     # 69    SECTION FLIGHT SOFTWARE.									 #	  75
     # 70												 #	  76
     # 71	  THE NICMOS NSSC-I FLIGHT SOFTWARE BUILDS MACRO COMMANDS FROM BUFFERS			 #	  77
     # 72    FILLED FROM STORED	COMMANDING OR THROUGH REAL-TIME	COMMANDING BY THE GROUND.		 #	  78
     # 73    PROCESSING	THE COMMAND INPUT BUFFERS CONSISTS OF FIRST POLLING EACH OF THE			 #	  79
     # 74    THREE STORED COMMAND INPUT	BUFFERS.  IF LOADING OF	A GIVEN	STORED COMMAND			 #	  80
     # 75    INPUT BUFFER IS COMPLETE, THE SOFTWARE UNLOADS THAT INPUT BUFFER.	IF THERE		 #	  81
     # 76    IS	ROOM IN	THE RTCS THE INSTRUMENT	OPS STORED COMMAND BUFFER IS POLLED AND			 #	  82
     # 77    POSSIBLY UNLOADED.	THE FIRST TIME A STORED	COMMAND	BUFFER IS UNLOADED IN THE		 #	  83
     # 78    CURRENT EXECUTION OF THE SOFTWARE,	THE FLAG NCLRQFLG_ IS CHECKED TO SEE IF			 #	  84
     # 79    THE NICMOS	CLEAR ALL QUEUES MACRO SHOULD BE SENT TO CLEAR UP ANY POSSIBLE			 #	  85
     # 80    ABORTED REAL-TIME COMMANDING. IF THE MACRO	RTCS IS	BUSY WHEN A STORED COMMAND		 #	  86
     # 81    BUFFER IS FOUND TO	BE COMPLETELY LOADED, THE COMMANDS ARE DISCARDED AND AN			 #	  87
     # 82    EXECUTIVE STATUS BUFFER MESSAGE IS	POSTED.							 #	  88
     # 83												 #	  89
     # 84	     IF	LOADING	IS NOT COMPLETE	FOR ANY	OF THE STORED COMMAND INPUT			 #	  90
     # 85    BUFFERS, THE SOFTWARE POLLS THE REAL-TIME COMMAND INPUT BUFFER.  IF THE MACRO		 #	  91
     # 86    RTCS IS BUSY, THE SOFTWARE	WILL SKIP POLLING THE REAL-TIME	COMMAND	INPUT			 #	  92
     # 87    BUFFER.  OTHERWISE, IF LOADING IS COMPLETE	FOR THE	REAL-TIME COMMAND INPUT			 #	  93
     # 88    BUFFER, THE SOFTWARE UNLOADS THAT INPUT BUFFER.  IF ANY OF	THE FIVE COMMAND		 #	  94
     # 89    INPUT BUFFERS WERE	UNLOADED, THE SOFTWARE STARTS THE NICMOS-UNIQUE	NFMACRO	AP		 #	  95
     # 90    RTCS. OTHERWISE, THE SOFTWARE EXITS							 #	  96
     # 91												 #	  97
     # 92	     NOTE THAT IT IS POSSIBLE TO UNLOAD	ANY OR ALL FOUR	OF THE STORED			 #	  98
     # 93    COMMAND INPUT BUFFERS ON A	GIVEN EXECUTION	OF THE SOFTWARE; FOR THE CASE WHERE		 #	  99
     # 94    MULTIPLE STORED COMMAND INPUT BUFFERS WERE	UNLOADED DURING	THE SAME EXECUTION		 #	 100
     # 95    OF	THE SOFTWARE, COMMANDS FROM THE	DETECTOR 1 BUFFER WILL BE ISSUED FIRST,			 #	 101
     # 96    FOLLOWED BY DETECTOR 2 COMMANDS, THEN DETECTOR 3 COMMANDS,	FINALLY	INSTRUMENT		 #	 102
     # 97    OPS COMMANDS; ONLY	IF LOADING OF NO STORED	COMMAND	INPUT BUFFERS WAS COMPLETE		 #	 103
     #													 #	 104


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  2.002
01 JAN 95


     NICMOS FLIGHT SOFTWARE INTRODUCTION   (continued)


     #													 #
     # 98    WILL THE REAL-TIME	COMMAND	INPUT BUFFER BE	POLLED.						 #
     # 99												 #	 105
     #100	  THE NICMOS NSSC-I FLIGHT SOFTWARE BUILDS A TIME CODE UPDATE WHEN			 #	 106
     #101    THE FLAG NFTCUFLG_	IS SET BY THE GROUND.  THE GROUND IS REQUIRED TO MANAGE			 #	 107
     #102    THE FLAG SUCH THAT	THE TIME CODE UPDATE WILL GO OUT AT LEAST 10 MINOR FRAMES		 #	 108
     #103    BEFORE THE	NEXT MAJOR FRAME.  IF THE MACRO	RTCS IS	BUSY, THE TIME CODE UPDATE		 #	 109
     #104    WILL NOT BE SENT AND WILL BE RETRIED ON THE NEXT EXECUTION	OF THE SOFTWARE.		 #	 110
     #105												 #	 111
     #106	  THE NICMOS NSSC-I FLIGHT SOFTWARE CHECKS THE NICMOS ENGINEERING DATA FOR		 #	 112
     #107    UNSAFE CONDITIONS,	AND WILL COMMAND THE NICMOS INSTRUMENT TO A SAFE STATE IF		 #	 113
     #108    NECESSARY.											 #	 114
     #109												 #	 115
     #110    NOTE: A NUMBER IS OCTAL IF	IT STARTS WITH A "0, OTHERWISE IT IS DECIMAL.			 #	 116
     #111	   A NUMBER IN [] IS THE DEFAULT VALUE.							 #	 117
     #112    *******************************************************************************		 #	 118
     #113    THE FOLLOWING SET OF ITEMS	MUST BE	MODIFIED FOR CROSS-STRAPPING:				 #	 119
     #114    A COMPLETE	DESCRIPTION OF EACH ITEM IS FOUND IN THE DATA DECLARATION SECTIONS		 #	 120
     #115    IN	THE VARIOUS MODULES BELOW								 #	 121
     #116												 #	 122
     #117			 FOR RIU A TO MEB 1 OR RIU B TO	MEB 2:					 #	 123
     #118												 #	 124
     #119    ..	SPECIAL	ENGINEERING DATA TELEMETRY ADDRESSES (SEE NFWORLD)				 #	 125
     #120    NFSPEDTA: 0,"0121002,"0121002,"0121002,"0121002,"0121002,					 #	 126
     #121		 "0121002,"0121002,"0121002,"0121002,"0121002,					 #	 127
     #122		 "0121002,"0121002,"0121002,"0121002,"0121002,					 #	 128
     #123		 "0121002,"0121002,"0121002,"0121002,"0121002,					 #	 129
     #124		 "0121002,"0121002,"0121002,"0121002,"0121002,					 #	 130
     #125		 "0121002,"0121002,"0121002,"0121002,"0121002,					 #	 131
     #126		 "0121002,"0121002,"0121002,"0121002,"0121002,0					 #	 132
     #127												 #	 133
     #128    ..	LINE NUMBER TABLE FOR COMMANDS BUILT IN	NFMACRO	(SEE NFWORLD)				 #	 134
     #129    NLINETAB: 4,2,0										 #	 135
     #130    ..												 #	 136
     #131    NSLEWMAC: "040000,"031120,"000433 ..THE SLEW CONFIRMATION MACRO				 #	 137
     #132    NTDFDMAC: "040000,"031120,"000435 ..THE TAKE DATA FLAG DOWN MACRO				 #	 138
     #133    NTDFUMAC: "040000,"031120,"000436 ..THE TAKE DATA FLAG UP MACRO				 #	 139
     #134    NCLRBOOT: "020024	..THIRD	WORD OF	NCLRCMD	AS A BOOT MACRO					 #	 140
     #135    NCLRCMD:  "040000,"031120,0  ..NICMOS CLEAR ALL QUEUES COMMAND				 #	 141
     #136    NCLROPER: "000025	..THIRD	WORD OF	NCLRCMD	AS AN OPERATE MACRO				 #	 142
     #137    -------------------------------------------------------------------------------		 #	 143
     #138			FOR RIU	A TO MEB 2 OR RIU B TO MEB 1:					 #	 144
     #139												 #	 145
     #140    ..	SPECIAL	ENGINEERING DATA TELEMETRY ADDRESSES (SEE NFWORLD)				 #	 146
     #141    NFSPEDTA: 0,"0121003,"0121003,"0121003,"0121003,"0121003,					 #	 147
     #142		 "0121003,"0121003,"0121003,"0121003,"0121003,					 #	 148
     #143		 "0121003,"0121003,"0121003,"0121003,"0121003,					 #	 149
     #144		 "0121003,"0121003,"0121003,"0121003,"0121003,					 #	 150
     #145		 "0121003,"0121003,"0121003,"0121003,"0121003,					 #	 151
     #146		 "0121003,"0121003,"0121003,"0121003,"0121003,					 #	 152
     #													 #	 153


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  2.003
01 JAN 95


     NICMOS FLIGHT SOFTWARE INTRODUCTION   (continued)


     #													 #
     #147		 "0121003,"0121003,"0121003,"0121003,"0121003,0					 #
     #148												 #	 154
     #149    ..	LINE NUMBER TABLE FOR COMMANDS BUILT IN	NFMACRO	(SEE NFWORLD)				 #	 155
     #150    NLINETAB: 5,3,1										 #	 156
     #151    ..												 #	 157
     #152    NSLEWMAC: "040000,"031120,"0400432	..THE SLEW CONFIRMATION	MACRO				 #	 158
     #153    NTDFDMAC: "040000,"031120,"0400434	..THE TAKE DATA	FLAG DOWN MACRO				 #	 159
     #154    NTDFUMAC: "040000,"031120,"0400437	..THE TAKE DATA	FLAG UP	MACRO				 #	 160
     #155    NCLRBOOT: "0420025	..THIRD	WORD OF	NCLRCMD	AS A BOOT MACRO					 #	 161
     #156    NCLRCMD:  "040000,"031120,0  ..NICMOS CLEAR ALL QUEUES COMMAND				 #	 162
     #157    NCLROPER: "0400024	 ..THIRD WORD OF NCLRCMD AS AN OPERATE MACRO				 #	 163
     #158    *******************************************************************************		 #	 164
     #159												 #	 165
     #													 #
     #####################################################################################################


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  3
01 JAN 95

























					    *****************
					    *		    *
					    * NICMOS COMMON *
					    *		    *
					    *****************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  4
01 JAN 95	NICMOS COMMON


     ZIDATA


     DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
     D													 D
     D	1    ..MODULE NAME = ZIDATA									 D	 168
     D	2    ..IDENTIFICATION =	NSSC-I EXECUTIVE FLIGHT	S/W						 D	 169
     D	3    ..ENGLISH NAME = NSSC-I EXECUTIVE DATA COMMON						 D	 170
     D	4    ..LANGUAGE	= CFG PDL									 D	 171
     D	5    ..PURPOSE = EXPLICITLY SHOWS NSSC-I EXECUTIVE DATA	USED BY	THE NSSC-I NICMOS FLIGHT	 D	 173
     D		     SOFTWARE.										 D
     D	6    ..NOTES = NONE										 D	 174
     D	7    ..---------------------------------------------------------------------------		 D	 175
     D	8    INDXROW_[7] = NUMBER OF ENTRIES IN	ONE RTCS INDEX TABLE ENTRY				 D	 176
     D	9    IXTABLE_(1008) = RTCS INDEX TABLE (TOTAL OF 144 SEQUENCES)					 D	 177
     D 10    NCVT_ = NSSC-1 CURRENT VALUE TABLE								 D	 178
     D 11    NDREF_ = NSSC-1 DATA REFERENCE TABLE, FOR INDIRECT	REFERENCES TO ITEMS STORED IN THE	 D	 180
     D		     CURRENT VALUE TABLE								 D
     D 12    NLFLGS_ =	LIMIT CHECK FLAG WORD OBTAINED FROM THE	FLIGHT EXEC (32	BITS)			 D	 181
     D 13    MINFRMNO_ = NSSC-I	MINOR FRAME NUMBER							 D	 182
     D 14    SAFING_(6)	= TABLE	INDICATING SAFING STATE	OF EACH	INSTRUMENT				 D	 183
     D 15    SI2USEQT_ = TABLE MAPPING SI2 UNIQUE SEQUENCE NUMBERS TO COMMON POOL SEQUENCE NUMBERS	 D	 185
     D 16    SSMTIMEH_ = SSM TIME HIGH 16 BITS								 D	 186
     D 17    SSMTIMEL_ = SSM TIME LOW 16 BITS								 D	 187
     D													 D
     DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  5
01 JAN 95	NICMOS COMMON


     NFWORLD


     DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
     D													 D
     D	1    ..MODULE NAME = NFWORLD									 D	 189
     D	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 D	 190
     D	3    ..ENGLISH NAME = NICMOS DATA COMMON							 D	 191
     D	4    ..LANGUAGE	= CFG PDL									 D	 192
     D	5    ..PURPOSE = SERVES	AS A LOCATION WHERE ALL	NICMOS APPLICATION PROCESSORS CAN		 D	 194
     D		     READ AND WRITE									 D
     D	6    ..NOTES = NONE										 D	 195
     D	7    ..---------------------------------------------------------------------------		 D	 196
     D	8    ..												 D	 197
     D	9    ..THE FOLLOWING 35	WORDS MUST REMAIN CONTIGUOUS						 D	 198
     D 10    ..35 BYTES	OF SPECIAL ENGINEERING DATA							 D	 199
     D 11    ..EACH SPECIAL ENGINEERING	DATA BYTE GOES INTO LOW	8 BITS OF AN 18	BIT NSSC-I WORD		 D	 201
     D 12    NFSPEDIN_	 RES   0 ..START OF STORAGE AREA FOR SPECIAL ENGINEERING DATA			 D	 202
     D 13    NXSLEWLO_	 RES   1 ..LOW ORDER BYTE OF X SLEW VALUE					 D	 203
     D 14    NXSLEWHI_	 RES   1 ..HIGH	ORDER BYTE OF X	SLEW VALUE					 D	 204
     D 15    NYSLEWLO_	 RES   1 ..LOW ORDER BYTE OF Y SLEW VALUE					 D	 205
     D 16    NYSLEWHI_	 RES   1 ..HIGH	ORDER BYTE OF Y	SLEW VALUE					 D	 206
     D 17    NSLEWDET_	  RES	1 ..INDICATOR OF WHICH DETECTOR	REQUESTED A SLEW			 D	 207
     D 18    ..	0 = NO SLEW WAS	REQUESTED (DEFAULT STATE)						 D	 208
     D 19    ..	1 = DETECTOR 1										 D	 209
     D 20    ..	2 = DETECTOR 2										 D	 210
     D 21    ..	3 = DETECTOR 3										 D	 211
     D 22    ..	ELSE INVALID										 D	 212
     D 23    ..	EXECUTIVE STATUS BUFFER	MESSAGE	NUMBER							 D	 213
     D 24    ..	(OFFSET	OF 512 WILL BE ADDED BEFORE USE	BY NSSC-I FLIGHT SOFTWARE)			 D	 214
     D 25    NESBMSGL_	 RES   1 ..LOW ORDER BYTE OF ESB MESSAGE NUMBER					 D	 215
     D 26    NESBMSGH_	 RES   1 ..HIGH	ORDER BYTE OF ESB MESSAGE NUMBER (5 LOW	BITS VALID)		 D	 216
     D 27    NESBPARL_	 RES   1 ..LOW ORDER BYTE OF ESB PARAMETER					 D	 217
     D 28    NESBPARH_	 RES   1 ..HIGH	ORDER BYTE OF ESB PARAMETER					 D	 218
     D 29    ..	SAFING EXECUTIVE STATUS	BUFFER MESSAGE NUMBER						 D	 219
     D 30    ..	(OFFSET	OF 512 WILL BE ADDED BEFORE USE	BY NSSC-I FLIGHT SOFTWARE)			 D	 220
     D 31    NSAFMSGH_	 RES   1 ..HIGH	ORDER BYTE OF SAFING ESB MESSAGE NUMBER				 D	 221
     D 32    NSAFMSGL_	 RES   1 ..LOW ORDER BYTE OF SAFING ESB	MESSAGE	NUMBER				 D	 222
     D 33    NSAFPARL_	 RES   1 ..LOW ORDER BYTE OF ESB PARAMETER INDICATING REASON FOR SAFING		 D	 224
     D 34    NSAFPARH_	 RES   1 ..HIGH	ORDER BYTE OF ESB PARAMETER INDICATING REASON FOR SAFING	 D	 226
     D 35    ..	SUSPEND	EXECUTIVE STATUS BUFFER	MESSAGE	NUMBER						 D	 227
     D 36    ..	(OFFSET	OF 512 WILL BE ADDED BEFORE USE	BY NSSC-I FLIGHT SOFTWARE)			 D	 228
     D 37    NSUSMSGL_	 RES   1 ..LOW ORDER BYTE OF SUSPEND ESB MESSAGE NUMBER				 D	 229
     D 38    NSUSMSGH_	 RES   1 ..HIGH	ORDER BYTE OF SUSPEND ESB MESSAGE NUMBER (5 LOW	BITS VALID)	 D	 231
     D 39    NSUSPARL_	 RES   1 ..LOW ORDER BYTE OF SUSPEND ESB PARAMETER				 D	 232
     D 40    NSUSPARH_	 RES   1 ..HIGH	ORDER BYTE OF SUSPEND ESB PARAMETER				 D	 233
     D 41    NMINFRCT_	 RES   1 ..MINOR FRAME COUNT IN	THE NICMOS CONTROL SECTION FLIGHT SOFTWARE	 D	 235
     D 42    NFSWMODE_	 RES   1 ..INDICATION OF CONTROL SECTION FLIGHT	SOFTWARE MODE			 D	 236
     D 43    ..	"0245 =	OPERATE	MODE									 D	 237
     D 44    ..	"0274 =	BOOT MODE									 D	 238
     D 45    ..	 ELSE =	SPECIAL	ENGINEERING DATA IS INVALID						 D	 239
     D 46    NRESET_	 RES   1 ..REASON FOR CONTROL SECTION RESET					 D	 240
     D 47    ..	0: DEFAULT STATE									 D	 241
     D													 D	 242


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  5.001
01 JAN 95	NICMOS COMMON


     NFWORLD   (continued)


     D													 D
     D 48    ..	SOFTWARE RESETS	(RANGE 1 - 127)								 D
     D 49    ..	1 - 32:	INTEL EXCEPTION									 D	 243
     D 50    ..	33: COMMANDED RESET									 D	 244
     D 51    ..	34: RETURN TO BOOT FROM	OPERATE								 D	 245
     D 52    ..	35-127:	UNDEFINED									 D	 246
     D 53    ..	HARDWARE RESETS	(RANGE 128 - 255)							 D	 247
     D 54    ..	ALL EVEN NUMBERS IN RANGE ARE UNDEFINED							 D	 248
     D 55    ..	131: RIU DISCRETE									 D	 249
     D 56    ..	133: EDAC MULTIBIT ERROR								 D	 250
     D 57    ..	137: WATCHDOG TIMER									 D	 251
     D 58    ..	145-159: POWER ON RESET	(ODD NUMBERS ONLY, EVEN	ARE UNDEFINED)				 D	 252
     D 59    ..	ELSE: UNDEFINED										 D	 253
     D 60    NCKSMIND_	 RES   1 ..INDICATES WHETHER OR	NOT THE	LAST CHECKSUM PERFORMED	WAS CORRECT	 D	 255
     D 61    ..	0 = DEFAULT STATE									 D	 256
     D 62    ..	73 = CHECKSUM TEST PASSED (HEX 49)							 D	 257
     D 63    ..	ELSE = CHECKSUM	TEST FAILED								 D	 258
     D 64    NFSPARE_	 RES  14 ..SPARE WORDS								 D	 259
     D 65    ..												 D	 260
     D 66    ..35 BYTES	OF SPECIAL ENGINEERING DATA TELEMETRY ADDRESSES					 D	 261
     D 67    ..												 D	 262
     D 68    NFSPEDTA_ (37) ..TELEMETRY	ADDRESSES FOR SPECIAL ENGINEERING DATA.	A BUFFER FOR SPECIAL	 D	 266
     D		     ENGINEERING TELEMETRY ADDRESSES MUST START	AND END	WITH A DATA ZERO.  THE TELEMETRY D
     D		     ADDRESSES CONSIST OF RIU 24, MUX 0, TYPE SERIAL DIGITAL, LINE 2 (FOR CROSS		 D
     D		     STRAPPING PATCH TO	LINE 3).							 D
     D 69    ..DATA NFSPEDTA: 0,"0121002,"0121002,"0121002,"0121002,"0121002,				 D	 267
     D 70    ..			"0121002,"0121002,"0121002,"0121002,"0121002,				 D	 268
     D 71    ..			"0121002,"0121002,"0121002,"0121002,"0121002,				 D	 269
     D 72    ..			"0121002,"0121002,"0121002,"0121002,"0121002,				 D	 270
     D 73    ..			"0121002,"0121002,"0121002,"0121002,"0121002,				 D	 271
     D 74    ..			"0121002,"0121002,"0121002,"0121002,"0121002,				 D	 272
     D 75    ..			"0121002,"0121002,"0121002,"0121002,"0121002,0				 D	 273
     D 76    ..												 D	 274
     D 77    NLINETAB_(3) ..TABLE USED TO LOOK UP CORRECT LINE NUMBER FOR 27 BIT COMMANDS		 D	 275
     D 78    ..	DATA 4 = DATA LOAD COMMAND								 D	 276
     D 79    ..	DATA 2 = NORMAL	MACRO ACTIVATE COMMAND							 D	 277
     D 80    ..	DATA 0 = IMMEDIATE MACRO ACTIVATE COMMAND						 D	 278
     D 81    ..	FOR CROSS STRAPPING PURPOSES THE GROUND	MUST PATCH THE TABLE AS	FOLLOWS			 D	 279
     D 82    ..	DATA 5 = DATA LOAD COMMAND								 D	 280
     D 83    ..	DATA 3 = NORMAL	MACRO ACTIVATE COMMAND							 D	 281
     D 84    ..	DATA 1 = IMMEDIATE MACRO ACTIVATE COMMAND						 D	 282
     D 85    ..												 D	 283
     D 86    ..***************************************************************************		 D	 284
     D 87    ..TELEMETRY BUFFER	FOR NSSC-I MEMORY PORTION OF REGULAR ENGINEERING DATA. ONLY THE	LOW 8	 D	 286
     D		     BITS OF EACH 18 BIT NSSC-I	WORD GETS REPORTED IN TELEMETRY				 D
     D 88    ..	NM2DAT1_ (30)										 D	 287
     D 89    ..ITEMS IS	NM2DAT1_ ARRAY COPIED FROM NFCSCOMM AP						 D	 288
     D 90    NSWSPED_(9) = SPECIAL ENGINEERING BYTES TO	BE REPORTED IN REGULAR ED			 D	 289
     D 91    ..THE FOLLOWING ITEMS WILL	BE COPIED INTO THE NSWSPED_ ARRAY BY NFCSCOMM			 D	 290
     D 92    ..NXSLEWLO_										 D	 291
     D													 D	 292


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  5.002
01 JAN 95	NICMOS COMMON


     NFWORLD   (continued)


     D													 D
     D 93    ..NXSLEWHI_										 D
     D 94    ..NYSLEWLO_										 D	 293
     D 95    ..NYSLEWHI_										 D	 294
     D 96    ..NSLEWDET_										 D	 295
     D 97    ..NMINFRCT_										 D	 296
     D 98    ..NFSWMODE_										 D	 297
     D 99    ..NRESET_											 D	 298
     D100    ..NCKSMIND_										 D	 299
     D101    ..END OF NSWSPED_ ARRAY									 D	 300
     D102    ..ITEMS IN	NM2DAT1_ ARRAY DEFINED HERE AND	USED BY	NFCSCOMM OR NFMACRO			 D	 301
     D103    NBADMDCT_ = NUMBER	OF MINOR FRAMES	THAT SOFTWARE MODE IS BAD				 D	 302
     D104    NCLRQFLG_ = NICMOS	CLEAR ALL QUEUES FLAG (SET BY THE GROUND, RESET	BY AP)			 D	 303
     D105    ..	0 = DO NOT SEND	THE CLEAR ALL QUEUES MACRO COMMAND					 D	 304
     D106    ..	ELSE = SEND THE	CLEAR ALL QUEUES MACRO COMMAND						 D	 305
     D107    NCOMCNT_ =	RUNNING	COUNT OF NUMBER	OF COMMANDS SENT TO INSTRUMENT FROM  NFCSCOMM AP	 D	 307
     D108    NFBUFILL_	= WORD INDICATING IF EACH BUFFER IS PARTIALLY LOADED				 D	 308
     D109    ..	MAY BE A LOGICAL OR OF THE FOLLOWING VALUES:						 D	 309
     D110    ..	"000 = NO BUFFER IS PARIALLY LOADED							 D	 310
     D111    ..	"001 = DETECTOR	1 STORED COMMAND BUFFER	IS PARTIALLY LOADED				 D	 311
     D112    ..	"002 = DETECTOR	2 STORED COMMAND BUFFER	IS PARTIALLY LOADED				 D	 312
     D113    ..	"004 = DETECTOR	3 STORED COMMAND BUFFER	IS PARTIALLY LOADED				 D	 313
     D114    ..	"010 = INSTRUMENT OPS STORED COMMAND BUFFER IS PARTIALLY LOADED				 D	 314
     D115    ..	"020 = REAL TIME BUFFER	IS PARTIALLY LOADED						 D	 315
     D116    NFCKSMFL_ = A FLAG	TO NOTE	CHECKSUM FAILURE, IT MUST BE CLEARED BY	THE GROUND		 D	 316
     D117    ..	0 = NO CHECKSUM	FAILURE									 D	 317
     D118    ..	1 = CHECKSUM FAILURE									 D	 318
     D119    NFLVMODE_	= INDICATES LAST NICMOS	SOFTWARE MODE FOR KEEP ALIVE PROCESSING			 D	 319
     D120    ..	0 = BOOT MODE										 D	 320
     D121    ..	1 = OPERATE MODE									 D	 321
     D122    ..	-1 = UNKNOWN STATE									 D	 322
     D123    NFTIMEHH_ = HIGH BYTE OF 32 BIT SPACECRAFT	TIME FOR NEXT MAJOR FRAME			 D	 323
     D124    NFTIMEHI_ = HIGH 16 BITS OF 32 BIT	SPACECRAFT TIME	FOR NEXT MAJOR FRAME		 (ONLY	 D	 325
     D		     LOW BYTE WILL BE REPORTED IN TELEMETRY)						 D
     D125    NFTIMEML_ = MIDDLE	LOW BYTE OF 32 BIT SPACECRAFT TIME FOR NEXT MAJOR FRAME			 D	 326
     D126    NFTIMELO_ = LOW 16	BITS OF	SPACECRAFT TIME	FOR NEXT MAJOR FRAME		 (ONLY LOW BYTE	 D	 328
     D		     WILL BE REPORTED IN TELEMETRY)							 D
     D127    NLMNFRCT_ = THE LAST CONTROL SECTION MINOR	FRAME COUNTER					 D	 329
     D128    NMACCNTH_ = RUNNING COUNT OF NUMBER OF COMMANDS SENT TO INSTRUMENT	FROM		 NFMACRO D	 331
     D		     AP	(HIGH BYTE OF COUNT)								 D
     D129    NMACCNT_ =	 RUNNING COUNT OF NUMBER OF COMMANDS SENT TO INSTRUMENT	FROM		 NFMACRO D	 333
     D		     AP	(ONLY LOW BYTE WILL BE REPORTED	IN TELEMETRY)					 D
     D130    NMFAIL_ =	THE MINOR FRAME	COUNTER	FAILURE	WORD						 D	 334
     D131    NSUSTATE_ =  SUSPEND STATE	(SET AND INTERROGATED BY AP, SET BY THE	SUSPEND	SEQUENCE, AND	 D	 336
     D		     RESET BY THE GROUND AS PART OF RECOVERY FROM SAFE AND SUSPEND)			 D
     D132    ..	0 = NOT	SUSPENDED									 D	 337
     D133    ..	1 = SUSPENDED										 D	 338
     D134    NSWSPARE_(6) = SPARE BYTES	REPORTED IN SPECIAL ENGINEERING	DATA				 D	 339
     D135    ..END OF NM2DAT1 BUFFER									 D	 340
     D136    ..***************************************************************************		 D	 341
     D													 D	 342


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  5.003
01 JAN 95	NICMOS COMMON


     NFWORLD   (continued)


     D													 D
     D137    ..												 D
     D138    ..A TABLE TO INDICATE THE ACTION ASSOCIATED WITH A	PARTICULAR NSSC-I ERROR	CONDITION.	 D	 344
     D139    ..	0 = POST ESB MESSAGE									 D	 345
     D140    ..	1 = POST ESB & SUSPEND									 D	 346
     D141    ..	2 = POST ESB & SAFE									 D	 347
     D142    ..	3 = DO NOTHING										 D	 348
     D143    ..	NACTION_(21) = ACTION TABLE								 D	 349
     D144    ..												 D	 350
     D145    ..	ACTION TABLE ITEMS FROM	NFMACRO								 D	 351
     D146    NBADIMED_[1] = IMMEDIATE COMMAND NOT IN FIRST LOCATION IN A BUFFER				 D	 352
     D147    NBADLWD_[1] = LAST	WORD IN	COMMAND	BUFFER IS NOT A	MACRO ACTIVATE COMMAND			 D	 353
     D148    NIDXMAC_[1] = NSSC-I EXEC REFUSED TO MODIFY THE INDEX TABLE FOR NFMACRO RTCS		 D	 354
     D149    NINVDENT_[1] = NFMACRO AP FOUND AN	ENTRY IN THE BUFFER AFTER THE ENTRY WHICH MADE THE	 D	 356
     D		     BUFFER COMPLETELY LOADED								 D
     D150    NMACRTSE_[1] = NSSC-I EXEC	FAILED TO ACTIVATE THE NFMACRO AP RTCS				 D	 357
     D151    NMRTSARB_[3] = NFMACRO AP RTCS ALREADY IN USE WHEN	READY TO BUILD COMMANDS	FROM REAL-TIME	 D	 359
     D		     COMMAND BUFFER									 D
     D152    NMRTSASB_[1] = NFMACRO AP RTCS ALREADY IN USE WHEN	READY TO BUILD COMMANDS	FROM STORED	 D	 361
     D		     COMMAND BUFFER									 D
     D153    NMRTSATU_[0] = NFMACRO AP RTCS ALREADY IN USE WHEN	READY TO BUILD COMMANDS	FOR TIME CODE	 D	 363
     D		     UPDATE										 D
     D154    ..												 D	 364
     D155    ..	ACTION TABLE ITEMS FROM	NFCSCOMM							 D	 365
     D156    NBADCKSM_[0] = BAD	CHECKSUM REPORTED IN SPECIAL ENGINEERING DATA				 D	 366
     D157    NBADMOD1_[1] = BAD	MODE COUNTER EXCEEDED MAXIMUM WHEN LAST	KNOWN MODE WAS OPERATE MODE	 D	 368
     D158    NBADMOD2_[2] = BAD	MODE COUNTER EXCEEDED MAXIMUM WHEN LAST	KNOWN MODE WAS BOOT MODE	 D	 370
     D159    NCOMRTSE_[1] = NSSC-I EXEC	FAILED TO ACTIVATE THE NFCSCOMM	AP RTCS				 D	 371
     D160    NDETINVD_[0] = DETECTOR NUMBER WAS	NOT 0,1,2 OR 3						 D	 372
     D161    NHWRSOTR_[1] = CONTROL SECTION HARDWARE RESET OUT OF EXPECTED RANGE			 D	 373
     D162    NIDXCOMM_[1] = NSSC-I EXEC	REFUSED	TO MODIFY THE INDEX TABLE FOR NFCSCOMM RTCS		 D	 374
     D163    NMFCFLOP_[1] = THE	MINOR FRAME COUNTER FAILED IN OPERATE					 D	 375
     D164    NMFCFLBT_[2] = THE	MINOR FRAME COUNTER FAILED IN BOOT					 D	 376
     D165    NSAFREQ_[2] = SAFING REQUESTED BY THE CONTROL SECTION FLIGHT SOFTWARE			 D	 377
     D166    NSLWFAIL_[0] = NSSC-I EXEC	FAILED TO HONOR	A SLEW REQUEST					 D	 378
     D167    NSUSREQ_[1] = SUSPEND SEQUENCE REQUESTED BY THE CONTROL SECTION FLIGHT SOFTWARE		 D	 379
     D168    NSWRSOTR_[1] = CONTROL SECTION SOFTWARE RESET OUT OF EXPECTED RANGE			 D	 380
     D169    ..END OF ACTION TABLE									 D	 381
     D170    ..***************************************************************************		 D	 382
     D171    ..												 D	 383
     D172    LOW13BTS_["017777"] = MASK	TO EXTRACT LOW 13 BITS						 D	 384
     D173    NBOTMODE_["0274] =	A FIXED	NUMBER REPRESENTING BOOT MODE					 D	 385
     D174    NCAPNUM_[21] = APPLICATION	PROCESSOR NUMBER FOR NFCSCOMM					 D	 386
     D175    NFNICMOS_[2] = NUMBER OF THE NICMOS INSTRUMENT						 D	 387
     D176    NMAPNUM_[22] = APPLICATION	PROCESSOR NUMBER FOR NFMACRO					 D	 388
     D177    NOOPCMD_(3) = ["060000,"031024,0] ..THE NSSC-I SOFTWARE NOOP COMMAND WITH A 25 MS TIMETAG	 D	 390
     D		     FOR END OF	UNIQUE SEQUENCES							 D
     D178    NOPRMODE_["0245] =	A FIXED	NUMBER REPRESENTING OPERATE MODE				 D	 391
     D179    NSAPNUM_[23] = APPLICATION	PROCESSOR NUMBER FOR NFSAFING					 D	 392
     D180    NSUSEQNM_[8] = NUMBER OF THE NICMOS SUSPEND SEQUENCE					 D	 393
     D													 D	 394


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  5.004
01 JAN 95	NICMOS COMMON


     NFWORLD   (continued)


     D													 D
     D181    REPLYMSK_["0377] =	MASK TO	RESET HIGH BITS	FOR SPECIAL ENGINEERING	DATA			 D
     D													 D
     DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  6
01 JAN 95	NICMOS COMMON


     NFACTION (ESBNUM,ESBPAR,ACTION,APNUM)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..SUBROUTINE NAME = NFACTION								 *	 396
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	 397
     *	3    ..ENGLISH NAME = NICMOS ACTION RESPONSE							 *	 398
     *	4    ..LANGUAGE	= CFG PDL									 *	 399
     *	5    ..PURPOSE = TAKE AN ACTION	AS REQUESTED BY	THE CALLING ROUTINE. THE ACTIONS ARE POST AN	 *	 403
     *		     EXECUTIVE STATUS BUFFER MESSAGE, POST AN EXECUTIVE	STATUS BUFFER MESSAGE AND	 *
     *		     SUSPEND THE NICMOS	INSTRUMENT, POST AN EXECUTIVE STATUS BUFFER MESSAGE AND	SAFE THE *
     *		     NICMOS INSTRUMENT,	OR DO NOTHING.							 *
     *	6    ..NOTES = NEED TWO	COPIES OF THIS SUBROUTINE SINCE	BOTH NFCSCOMM AND NFMACRO CAN CALL IT AT *	 408
     *		     THE SAME TIME. THE	NICMOS SAFING WORD WILL	BE SET BY THE EXECUTIVE	REQUEST	FOR	 *
     *		     SAFING (SAFING_(NFNICMOS_)). IF THE ACTION	IS TO SAFE OR SUSPEND AND THE INSTRUMENT *
     *		     HAS ALREADY BEEN SAFED OR SUSPENDED THE ACTION WILL ONLY BE TO POST THE ASSOCIATED	 *
     *		     EXECUTIVE STATUS BUFFER MESSAGE.							 *
     *	7    ..CALLING SEQUENCE	= CALL NFACTION	(ESBNUM,ESBPAR,ACTION,APNUM)				 *	 409
     *	8    ..GLOBAL INPUTS = LOW13BITS_, NFNICMOS_, NSUSEQNM_, NSUSTATE_, SAFING_			 *	 410
     *	9    ..GLOBAL OUTPUTS =	NSUSTATE_								 *	 411
     * 10    ..SUBRS CALLED = ZIRTCC, ZISAFE, ZISTAT							 *	 412
     * 11    ..----------------------------------------------------------------------			 *	 413
     * 12    DATA GLOBAL (FORMAL PARAMETERS)								 *	 414
     * 13    ACTION_ = THE ACTION TO TAKE								 *	 415
     * 14    ..	0 = POST EXECUTIVE STATUS BUFFER MESSAGE						 *	 416
     * 15    ..	1 = POST EXECUTIVE STATUS BUFFER MESSAGE AND SUSPEND THE NICMOS	INSTRUMENT		 *	 417
     * 16    ..	2 = POST EXECUTIVE STATUS BUFFER MESSAGE AND SAFE THE NICMOS INSTRUMENT			 *	 418
     * 17    ..	3 = DO NOTHING										 *	 419
     * 18    APNUM_ = THE APPLICATION PROCESSOR	NUMBER OF THE CALLING ROUTINE				 *	 420
     * 19    ESBNUM_ = THE STATUS BUFFER MESSAGE NUMBER	TO BE POSTED					 *	 421
     * 20    ESBPAR_ = THE STATUS BUFFER PARAMETER TO BE POSTED						 *	 422
     * 21    ENDDATA											 *	 423
     * 22    DATA LOCAL											 *	 424
     * 23    IRET_ = RETURN CODE FROM FLIGHT EXEC SUBROUTINES						 *	 425
     * 24    ENDDATA											 *	 426
     * 25    ..IF THERE	IS SOME	ACTION TO TAKE								 *	 427
     * 26    IF	(ACTION_ .NE. 3)									 *	 428
     * 27	 ..IF SAFING NOT ALREADY INITIATED FOR NICMOS INSTRUMENT				 *	 429
     * 28	 IF ( SAFING_(NFNICMOS_) .EQ. 0)							 *	 430
     * 29	     ..DETERMINE WHAT ACTION TO	TAKE							 *	 431
     * 30	     ..IF THE ACTION IS	TO SAFE	THE INSTRUMENT						 *	 432
     * 31	     IF	(ACTION_ .EQ. 2	)								 *	 433
     * 32		 ..CALL	..REQUEST THAT THE NSSC-I EXECUTIVE SAFE THE NICMOS INSTRUMENT		 *	 434
  28 * 33		 ZISAFE(NFNICMOS_, APNUM_) ..THIS REQUEST WILL SET SAFING_(NFNICMOS_)		 *	 435
     * 34		 ..ELSEIF THE ACTION IS	TO SUSPEND THE INSTRUMENT				 *	 436
     * 35	     ELSEIF (ACTION_ .EQ. 1)								 *	 437
     * 36		 ..IF THE INSTRUMENT IS	NOT ALREADY SUSPENDED					 *	 438
     * 37		 IF (NSUSTATE_ .EQ. 0)								 *	 439
     * 38		     ..CALL ..REQUEST NSSC-1 FLIGHT EXECUTIVE TO ACTIVATE THE NICMOS SUSPEND	 *	 441
     *				     SEQUENCE								 *
  27 * 39		     ZIRTCC(NSUSEQNM_, 1, 0, NFNICMOS_,	IRET_, APNUM_)				 *	 442
     * 40		     ..IF THE NSSC-I EXECUTIVE FAILS TO	START THE SUSPEND SEQUENCE		 *	 443
     *													 *	 444


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  6.001
01 JAN 95	NICMOS COMMON


     NFACTION (ESBNUM,ESBPAR,ACTION,APNUM)   (continued)


     *													 *
     * 41		     IF	(IRET_ .NE. 0)								 *
     * 42			 ..CALL	..REQUEST THAT THE NSSC-I EXECUTIVE SAFE THE NICMOS INSTRUMENT	 *	 445
  28 * 43			 ZISAFE(NFNICMOS_, APNUM_)						 *	 446
     * 44			 ..POST	ESB MESSAGE INDICATING THAT THE	NSSC-I EXECUTIVE FAILED	TO START *	 448
     *					 THE SUSPEND SEQUENCE						 *
     * 45			 ..CALL									 *	 449
  33 * 46			 ZISTAT(NFNICMOS_, 200,	0, IRET_)					 *	 450
     * 47		     ENDIF									 *	 451
     * 48		     NSUSTATE_ = 1 ..THE NICMOS	IS NOW IN THE SUSPENDED	STATE			 *	 452
     * 49		 ENDIF										 *	 453
     * 50	     ENDIF										 *	 454
     * 51	 ENDIF											 *	 455
     * 52	 ..EXTRACT THE 13 LOW BITS FOR THE ESB MESSAGE NUMBER					 *	 456
     * 53	 ESBNUM_ = IAND(ESBNUM_, LOW13BTS_)							 *	 457
     * 54	 ..POST	THE STATUS BUFFER MESSAGE							 *	 458
     * 55	 ..CALL											 *	 459
  33 * 56	 ZISTAT(NFNICMOS_, ESBNUM_, ESBPAR_, IRET_)						 *	 460
     * 57    ENDIF											 *	 461
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  7
01 JAN 95	NICMOS COMMON


     NFPARITY  (RTCSADR)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..SUBROUTINE NAME = NFPARITY								 *	 463
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	 464
     *	3    ..ENGLISH NAME = NICMOS GENERATE PARITY BIT						 *	 465
     *	4    ..LANGUAGE	= CFG PDL									 *	 466
     *	5    ..PURPOSE = GENERATE ODD PARITY FOR ONE 27	BIT COMMAND (LOCATED IN	WORDS TWO AND THREE OF	 *	 468
     *		     AN	RTCS COMMAND)									 *
     *	6    ..NOTES = NONE										 *	 469
     *	7    ..CALLING SEQUENCE	= CALL NFPARITY	(RTCSADR)						 *	 470
     *	8    ..GLOBAL INPUTS = NONE									 *	 471
     *	9    ..GLOBAL OUTPUTS =	NONE									 *	 472
     * 10    ..SUBRS CALLED = NONE									 *	 473
     * 11    ..----------------------------------------------------------------------			 *	 474
     * 12    DATA GLOBAL (FORMAL PARAMETERS)								 *	 475
     * 13    RTCSADR_ =	ADDRESS	OF A TWO WORD TABLE CONTAINING 27 BIT COMMAND				 *	 476
     * 14    ENDDATA											 *	 477
     * 15    DATA LOCAL											 *	 478
     * 16    NPARBIT_ =	PARITY BIT									 *	 479
     * 17    ENDDATA											 *	 480
     * 18    ..												 *	 481
     * 19    ..GENERATE	THE PARITY BIT ON THE 27 COMMAND BITS						 *	 482
     * 20    ..IF BOTH WORDS HAVE ODD PARITY SET THE PARITY BIT, IF BOTH WORDS HAVE EVEN PARITY	SET THE	 *	 485
     *		     PARITY BIT, IF ONE	WORD HAS EVEN PARITY AND THE OTHER HAS ODD PARITY DO NOT SET THE *
     *		     PARITY BIT.									 *
     * 21    IF	( RTCSADR_(1) HAS ODD PARITY)								 *	 486
     * 22	 IF ( RTCSADR_(2) HAS ODD PARITY)							 *	 487
     * 23	     NPARBIT_ =	1									 *	 488
     * 24	 ELSE ..RTCSADR_(2) HAS	EVEN PARITY							 *	 489
     * 25	     NPARBIT_ =	0									 *	 490
     * 26	 ENDIF											 *	 491
     * 27    ELSE ..RTCSADR_(1)	HAS EVEN PARITY								 *	 492
     * 28	 IF (RTCSADR_(2) HAS ODD PARITY)							 *	 493
     * 29	     NPARBIT_ =	0									 *	 494
     * 30	 ELSE ..RTCSADR_(2) HAS	EVEN PARITY							 *	 495
     * 31	     NPARBIT_ =	1									 *	 496
     * 32	 ENDIF											 *	 497
     * 33    ENDIF											 *	 498
     * 34    ..MERGE THE PARITY	BIT INTO THE WORD THREE	OF THE RTCS COMMAND				 *	 499
     * 35    RTCSADR_(2) = IOR(RTCSADR_(2), NPARBIT_)							 *	 500
     * 36    RETURN											 *	 501
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  8
01 JAN 95

























			       *******************************************
			       *					 *
			       * CONTROL SECTION COMMUNICATION PROCESSOR *
			       *					 *
			       *******************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..PROCESSOR NAME =	NFCSCOMM ******** APPLICATION PROCESSOR	NUMBER 21 ********		 *	 504
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	 505
     *	3    ..ENGLISH NAME = CONTROL SECTION COMMUNICATION						 *	 506
     *	4    ..LANGUAGE	= CFG PDL									 *	 507
     *	5    ..PURPOSE = RECEIVE SPECIAL ENGINEERING DATA FROM THE NICMOS INSTRUMENT, RESPOND TO ANY	 *	 512
     *		     REQUESTS EMBEDDED IN THIS SPECIAL ENGINEERING DATA, AND SEND A CONFIRMATION MESSAGE *
     *		     BACK TO THE NICMOS	INSTRUMENT IF A	SLEW REQUEST WAS RECEIVED. RETRIEVE AND	FORWARD	 *
     *		     THE HST TAKE DATA FLAG. MONITOR CONTROL SECTION RESETS, CHECKSUM VERIFICATION, AND	 *
     *		     A KEEP-ALIVE MINOR	FRAME COUNTER.							 *
     *	6    ..NOTES = INITIALIZATION NORMALLY DONE AS PART OF TRANSITION FROM HOLD TO BOOT		 *	 513
     *	7    ..CALLING SEQUENCE	= SYNCHRONOUS, ONCE EVERY HALF SECOND, WITH INITIALIZATION AT THE	 *	 515
     *		     INITIAL ENABLING FOR EXECUTION.							 *
     *	8    ..GLOBAL INPUTS = NBADCKSM_, NBADMDCT_, NBADMOD1_,	NBADMOD2_, NBOTMODE_, NCKSMIND_,	 *	 521
     *		     NESBMSGH_,	NESBMSGL_, NESBPARH_, NESBPARL_, NFLVMODE_, NFNICMOS_, NFSPEDIN_,	 *
     *		     NFSPEDTA_,	NFSWMODE_, NHWRSOTR_, NOPRMODE_, NSAFMSGH_, NSAFMSGL_, NSAFPARH_,	 *
     *		     NSAFPARL_,	NSAFREQ_, NSUSMSGH_, NSUSMSGL_,	NSUSPARH_, NSUSPARL_, NSUSREQ_,		 *
     *		     NSUSTATE_,	NSWRSOTR_								 *
     *	9    ..GLOBAL OUTPUTS =	NBADMDCT_, NCOMCNT_, NFCKSMFL_,	NFLVMODE_, NMFAIL_, NSWSPED_		 *	 523
     * 10    ..SUBRS CALLED = NFACTION,	ZIPITR,	ZIREF, ZISEF, ZISPED					 *	 524
     * 11    ..---------------------------------------------------------------------------		 *	 525
     * 12    DATA LOCAL											 *	 526
     * 13    ..THIS LIST OF LOCAL VARIABLES IS VALID IN	ALL SEGMENTS INCLUDED IN NFCSCOMM,		 *	 527
     * 14    ..NAMELY NFSLEW, NFALIVE, AND NFCSSEND							 *	 528
     * 15    I_	= LOOP VARIABLE										 *	 529
     * 16    IRET_ = RETURN CODE FROM FLIGHT EXEC SUBROUTINES						 *	 530
     * 17    NBADMDMX_[10] = MAXIMUM NUMBER OF MINOR FRAMES THAT SOFTWARE MODE CAN BE BAD		 *	 531
     * 18    NCKSMEFL_[1] = THE	NICMOS EVENT FLAG REFLECTING THE RESULT	OF THE CHECKSUM	TEST		 *	 532
     * 19    NESBMSGT_ = EXECUTIVE STATUS BUFFER MESSAGE NUMBER						 *	 533
     * 20    NESBOFST_[512] = OFFSET FOR CONTROL SECTION ESB MESSAGE NUMBER				 *	 534
     * 21    NESBPARM_ = EXECUTIVE STATUS BUFFER PARAMETER						 *	 535
     * 22    NFLMODE_ =	INDICATES LAST NICMOS SOFTWARE MODE						 *	 536
     * 23    ..	0 = BOOT MODE										 *	 537
     * 24    ..	1 = OPERATE MODE									 *	 538
     * 25    ..	-1 = UNKNOWN STATE									 *	 539
     * 26    NHARDMX_[159] = LARGEST VALUE OF KNOWN CONTROL SECTION HARDWARE RESETS			 *	 540
     * 27    NHWRESET_(16) = A TABLE INDICATING	ACTION TO TAKE FOR EACH	HARDWARE RESET WHEN THE		 *	 542
     *		     INSTRUMENT	IS NOT SUSPENDED							 *
     * 28    ..	EACH ENTRY IN NHWRESET_	IS DEFINED BELOW WITH A	DEFAULT	VALUE IN []			 *	 543
     * 29    ..	THE POSSIBLE ACTIONS TO	TAKE ARE:							 *	 544
     * 30    ..	[0] = POST EXECUTIVE STATUS BUFFER MESSAGE						 *	 545
     * 31    ..	[1] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SUSPEND THE NICMOS INSTRUMENT		 *	 546
     * 32    ..	[2] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SAFE THE	NICMOS INSTRUMENT		 *	 547
     * 33    ..	[3] = DO NOTHING									 *	 548
     * 34    ..	THE NUMBERS IN () BELOW	ARE THE	CONTROL	SECTION	RESET VALUES AS	REPORTED IN SPECIAL	 *	 550
     *		     ENGINEERING DATA									 *
     * 35    ..	DATA [0] ..UNDEFINED (129)								 *	 551
     * 36    ..	DATA NRIUDIS_[3] ..RIU DISCRETE	RESET (131)						 *	 552
     * 37    ..	DATA NWTCHDG_[1] ..WATCH DOG TIMER RESET (133)						 *	 553
     *													 *	 554


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.001
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     * 38    ..	DATA [0] ..UNDEFINED (135)								 *
     * 39    ..	DATA NMLTBIT_[1] ..EDAC	MULTI BIT ERROR	RESET (137)					 *	 555
     * 40    ..	DATA [0] ..UNDEFINED (139)								 *	 556
     * 41    ..	DATA [0] ..UNDEFINED (141)								 *	 557
     * 42    ..	DATA [0] ..UNDEFINED (143)								 *	 558
     * 43    ..	DATA NPWRON1_[3] ..POWER ON RESET (145)							 *	 559
     * 44    ..	DATA NPWRON2_[3] ..POWER ON RESET (147)							 *	 560
     * 45    ..	DATA NPWRON3_[3] ..POWER ON RESET (149)							 *	 561
     * 46    ..	DATA NPWRON4_[3] ..POWER ON RESET (151)							 *	 562
     * 47    ..	DATA NPWRON5_[3] ..POWER ON RESET (153)							 *	 563
     * 48    ..	DATA NPWRON6_[3] ..POWER ON RESET (155)							 *	 564
     * 49    ..	DATA NPWRON7_[3] ..POWER ON RESET (157)							 *	 565
     * 50    ..	DATA NPWRON8_[3] ..POWER ON RESET (159)							 *	 566
     * 51    NHWRSPTR =	HARDWARE RESET POINTER								 *	 567
     * 52    NHWRSUSP_(16) = A TABLE INDICATING	ACTION TO TAKE FOR EACH	HARDWARE RESET WHEN THE		 *	 569
     *		     INSTRUMENT	IS SUSPENDED								 *
     * 53    ..	EACH ENTRY IN NHWRSUSP_	IS DEFINED BELOW WITH A	DEFAULT	VALUE IN []			 *	 570
     * 54    ..	THE POSSIBLE ACTIONS TO	TAKE ARE:							 *	 571
     * 55    ..	[0] = POST EXECUTIVE STATUS BUFFER MESSAGE						 *	 572
     * 56    ..	[1] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SUSPEND THE NICMOS INSTRUMENT		 *	 573
     * 57    ..	[2] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SAFE THE	NICMOS INSTRUMENT		 *	 574
     * 58    ..	[3] = DO NOTHING									 *	 575
     * 59    ..	THE NUMBERS IN () BELOW	ARE THE	CONTROL	SECTION	RESET VALUES AS	REPORTED IN SPECIAL	 *	 577
     *		     ENGINEERING DATA									 *
     * 60    ..	DATA [0] ..UNDEFINED (129)								 *	 578
     * 61    ..	DATA NRIUDISS_[3] ..RIU	DISCRETE RESET (131)						 *	 579
     * 62    ..	DATA NWTCHDGS_[2] ..WATCH DOG TIMER RESET (133)						 *	 580
     * 63    ..	DATA [0] ..UNDEFINED (135)								 *	 581
     * 64    ..	DATA NMLTBITS_[2] ..EDAC MULTI BIT ERROR RESET (137)					 *	 582
     * 65    ..	DATA [0] ..UNDEFINED (139)								 *	 583
     * 66    ..	DATA [0] ..UNDEFINED (141)								 *	 584
     * 67    ..	DATA [0] ..UNDEFINED (143)								 *	 585
     * 68    ..	DATA NPWRON1S_[2] ..POWER ON RESET (145)						 *	 586
     * 69    ..	DATA NPWRON2S_[2] ..POWER ON RESET (147)						 *	 587
     * 70    ..	DATA NPWRON3S_[2] ..POWER ON RESET (149)						 *	 588
     * 71    ..	DATA NPWRON4S_[2] ..POWER ON RESET (151)						 *	 589
     * 72    ..	DATA NPWRON5S_[2] ..POWER ON RESET (153)						 *	 590
     * 73    ..	DATA NPWRON6S_[2] ..POWER ON RESET (155)						 *	 591
     * 74    ..	DATA NPWRON7S_[2] ..POWER ON RESET (157)						 *	 592
     * 75    ..	DATA NPWRON8S_[2] ..POWER ON RESET (159)						 *	 593
     * 76    NLRESET_ =	LAST CONTROL SECTION RESET VALUE FROM SPECIAL ENGINEERING DATA			 *	 594
     * 77    NRSACTN_ =	TEMPORARY VARIABLE TO HOLD RESET ACTION						 *	 595
     * 78    NRTCWDCT_ = THE NFCSCOMM RELATIVE TIME COMMAND SEQUENCE WORD COUNT				 *	 596
     * 79    NSAFMSGT_ = SAFING	ESB MESSAGE NUMBER							 *	 597
     * 80    NSAFOFST_[512] = OFFSET FOR SAFING	ESB MESSAGE NUMBER					 *	 598
     * 81    NSAFPARM_ = REASON	FOR SAFING USED	AS PARAMETER TO	ESB MESSAGE				 *	 599
     * 82    NSLEWREQ_ = SLEW REQUEST STATUS								 *	 600
     * 83    ..	0 = READY TO ACCEPT A SLEW REQUEST							 *	 601
     * 84    ..	1 = WAITING FOR	SLEW REQUEST CONFIRMATION ACKNOWLEDGMENT				 *	 602
     *													 *	 603


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.002
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     * 85    NSLWCONF_ = SLEW CONFIRMATION REQUIRED FLAG						 *
     * 86    ..	0 = DO NOT NEED	TO SEND	SLEW REQUEST CONFIRMATION					 *	 604
     * 87    ..	1 = DO NEED TO SEND SLEW REQUEST CONFIRMATION						 *	 605
     * 88    NSOFTMX_[34] = NUMBER OF KNOWN CONTROL SECTION SOFTWARE RESETS				 *	 606
     * 89    NSUSOFST_[512] = OFFSET FOR SUSPEND ESB MESSAGE NUMBER					 *	 607
     * 90    NSUSMSGT_ = SUSPEND ESB MESSAGE NUMBER							 *	 608
     * 91    NSUSPARM_ = SUSPEND ESB MESSAGE PARMETER							 *	 609
     * 92    NSWRESET_(34) = A TABLE INDICATING	ACTION TO TAKE FOR EACH	SOFTWARE RESET WHEN THE		 *	 611
     *		     INSTRUMENT	IS NOT SUSPENDED.							 *
     * 93    ..	INTEL EXCEPTIONS ARE NUMBERED 0-31 BY INTEL, 1-32 BY THE FLIGHT	SOFTWARE.		 *	 612
     * 94    ..	EACH ENTRY IN NSWRESET_	IS DEFINED BELOW WITH A	DEFAULT	VALUE IN []			 *	 613
     * 95    ..	THE POSSIBLE ACTIONS TO	TAKE ARE:							 *	 614
     * 96    ..	[0] = POST EXECUTIVE STATUS BUFFER MESSAGE						 *	 615
     * 97    ..	[1] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SUSPEND THE NICMOS INSTRUMENT		 *	 616
     * 98    ..	[2] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SAFE THE	NICMOS INSTRUMENT		 *	 617
     * 99    ..	[3] = DO NOTHING									 *	 618
     *100    ..	DATA NINTL01_[1] ..INTEL EXCEPTION RESET - DIVIDE ERROR					 *	 619
     *101    ..	DATA NINTL02_[1] ..INTEL EXCEPTION RESET - DEBUG EXCEPTIONS				 *	 620
     *102    ..	DATA NINTL03_[1] ..INTEL EXCEPTION RESET - NON MASKABLE	INTERRUPT			 *	 621
     *103    ..	DATA NINTL04_[1] ..INTEL EXCEPTION RESET - BREAKPOINT					 *	 622
     *104    ..	DATA NINTL05_[1] ..INTEL EXCEPTION RESET - OVERFLOW					 *	 623
     *105    ..	DATA NINTL06_[1] ..INTEL EXCEPTION RESET - BOUNDS CHECK					 *	 624
     *106    ..	DATA NINTL07_[1] ..INTEL EXCEPTION RESET - INVALID OPCODE				 *	 625
     *107    ..	DATA NINTL08_[1] ..INTEL EXCEPTION RESET - COPROCESSOR NOT AVAILABLE			 *	 626
     *108    ..	DATA NINTL09_[1] ..INTEL EXCEPTION RESET - DOUBLE FAULT					 *	 627
     *109    ..	DATA NINTL10_[1] ..INTEL EXCEPTION RESET - COPROCESSOR SEGMENT OVERRUN			 *	 628
     *110    ..	DATA NINTL11_[1] ..INTEL EXCEPTION RESET - INVALID TASK	STATE SEGMENT			 *	 629
     *111    ..	DATA NINTL12_[1] ..INTEL EXCEPTION RESET - SEGMENT NOT PRESENT				 *	 630
     *112    ..	DATA NINTL13_[1] ..INTEL EXCEPTION RESET - STACK FAULT					 *	 631
     *113    ..	DATA NINTL14_[1] ..INTEL EXCEPTION RESET - GENERAL PROTECTION				 *	 632
     *114    ..	DATA NINTL15_[1] ..INTEL EXCEPTION RESET - PAGE	FAULT					 *	 633
     *115    ..	DATA NINTL16_[1] ..INTEL EXCEPTION RESET - UNDEFINED BY	INTEL				 *	 634
     *116    ..	DATA NINTL17_[1] ..INTEL EXCEPTION RESET - COPROCESSOR ERROR				 *	 635
     *117    ..	INTEL EXCEPTIONS 18 - 32 ARE UNDEFINED AND SHOULD NEVER	HAPPEN				 *	 636
     *118    ..	DATA NINTLUD_[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]						 *	 637
     *119    ..	DATA NMRSCMD_[3] ..MACRO RESET COMMAND ISSUED						 *	 638
     *120    ..	DATA NRTNFROP_[1] ..RETURN TO BOOT FROM	OPERATE						 *	 639
     *121    NSWRSUSP_(34) = A TABLE INDICATING	ACTION TO TAKE FOR EACH	SOFTWARE RESET WHEN THE		 *	 641
     *		     INSTRUMENT	IS SUSPENDED								 *
     *122    ..	INTEL EXCEPTIONS ARE NUMBERED 0-31 BY INTEL, 1-32 BY THE FLIGHT	SOFTWARE.		 *	 642
     *123    ..	EACH ENTRY IN NSWRSUSP_	IS DEFINED BELOW WITH A	DEFAULT	VALUE IN []			 *	 643
     *124    ..	THE POSSIBLE ACTIONS TO	TAKE ARE:							 *	 644
     *125    ..	[0] = POST EXECUTIVE STATUS BUFFER MESSAGE						 *	 645
     *126    ..	[1] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SUSPEND THE NICMOS INSTRUMENT		 *	 646
     *127    ..	[2] = POST EXECUTIVE STATUS BUFFER MESSAGE AND SAFE THE	NICMOS INSTRUMENT		 *	 647
     *128    ..	[3] = DO NOTHING									 *	 648
     *129    ..	DATA NINTL01S_[2] ..INTEL EXCEPTION RESET - DIVIDE ERROR				 *	 649
     *130    ..	DATA NINTL02S_[2] ..INTEL EXCEPTION RESET - DEBUG EXCEPTIONS				 *	 650
     *131    ..	DATA NINTL03S_[2] ..INTEL EXCEPTION RESET - NON	MASKABLE INTERRUPT			 *	 651
     *													 *	 652


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.003
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     *132    ..	DATA NINTL04S_[2] ..INTEL EXCEPTION RESET - BREAKPOINT					 *
     *133    ..	DATA NINTL05S_[2] ..INTEL EXCEPTION RESET - OVERFLOW					 *	 653
     *134    ..	DATA NINTL06S_[2] ..INTEL EXCEPTION RESET - BOUNDS CHECK				 *	 654
     *135    ..	DATA NINTL07S_[2] ..INTEL EXCEPTION RESET - INVALID OPCODE				 *	 655
     *136    ..	DATA NINTL08S_[2] ..INTEL EXCEPTION RESET - COPROCESSOR	NOT AVAILABLE			 *	 656
     *137    ..	DATA NINTL09S_[2] ..INTEL EXCEPTION RESET - DOUBLE FAULT				 *	 657
     *138    ..	DATA NINTL10S_[2] ..INTEL EXCEPTION RESET - COPROCESSOR	SEGMENT	OVERRUN			 *	 658
     *139    ..	DATA NINTL11S_[2] ..INTEL EXCEPTION RESET - INVALID TASK STATE SEGMENT			 *	 659
     *140    ..	DATA NINTL12S_[2] ..INTEL EXCEPTION RESET - SEGMENT NOT	PRESENT				 *	 660
     *141    ..	DATA NINTL13S_[2] ..INTEL EXCEPTION RESET - STACK FAULT					 *	 661
     *142    ..	DATA NINTL14S_[2] ..INTEL EXCEPTION RESET - GENERAL PROTECTION				 *	 662
     *143    ..	DATA NINTL15S_[2] ..INTEL EXCEPTION RESET - PAGE FAULT					 *	 663
     *144    ..	DATA NINTL16S_[2] ..INTEL EXCEPTION RESET - UNDEFINED BY INTEL				 *	 664
     *145    ..	DATA NINTL17S_[2] ..INTEL EXCEPTION RESET - COPROCESSOR	ERROR				 *	 665
     *146    ..	INTEL EXCEPTIONS 18 - 32 ARE UNDEFINED AND SHOULD NEVER	HAPPEN				 *	 666
     *147    ..	DATA NINTLUDS_[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]						 *	 667
     *148    ..	DATA NMRSCMDS_[3] ..MACRO RESET	COMMAND	ISSUED						 *	 668
     *149    ..	DATA NRNFROPS_[3] ..RETURN TO BOOT FROM	OPERATE						 *	 669
     *150    NTDFCUR_ =	CURRENT	VALUE OF THE HST TAKE DATA FLAG	FROM THE SSM PIT			 *	 670
     *151    NTDFFWD_ =	TAKE DATA FLAG FORWARD FLAG							 *	 671
     *152    ..	0 = DO NOT NEED	TO SEND	TAKE DATA FLAG STATE						 *	 672
     *153    ..	1 = DO NEED TO SEND TAKE DATA FLAG STATE						 *	 673
     *154    NTDFSAVE_ = SAVED VALUE OF	THE HST	TAKE DATA FLAG FROM THE	SSM PIT				 *	 674
     *155    ..	0 = TAKE DATA FLAG IS DOWN								 *	 675
     *156    ..	1 = TAKE DATA FLAG IS UP								 *	 676
     *157    ..	-1 = SET TO INVALID DURING INITIALIZATION						 *	 677
     *158    PITWRD2_ =	LOCATION TO STORE WORD 2 FROM SSM PIT (WORD CONTAINING TDF)			 *	 678
     *159    TDFMASK_[4] = MASK	TO EXTRACT TAKE	DATA FLAG FROM SSM PIT WORD 2				 *	 679
     *160    ENDDATA											 *	 680
     *161    ..												 *	 681
     *162    IF	INITIALIZATION IS REQUIRED								 *	 682
     *163	 NLMNFRCT_ = 0 ..RESET LAST MINOR FRAME	COUNTER	FROM CONTROL SECTION FSW		 *	 683
     *164	 NSLEWREQ_ = 0 ..RESET READY TO	ACCEPT A SLEW REQUEST					 *	 684
     *165	 NBADMDCT_ = 0 ..RESET BAD MODE	COUNT							 *	 685
     *166	 NMFAIL_ = 0 ..RESET MINOR FRAME COUNTER FAILED	COUNT					 *	 686
     *167	 NCOMCNT_ = 0 ..RESET COUNT OF NUMBER OF HARDWARE COMMANDS SENT	TO INSTRUMENT		 *	 687
     *168	 NTDFSAVE_ = -1	..SET TAKE DATA	FLAG TO	INVALID						 *	 688
     *169	 NFLMODE_ = -1 ..INDICATE NICMOS INSTRUMENT IS IN UNKNOWN STATE				 *	 689
     *170	 NFLVMODE_ = -1	..INDICATE NICMOS INSTRUMENT IS	IN UNKNOWN STATE			 *	 690
     *171	 NLRESET_ = -1 ..INDICATE LAST CONTROL SECTION RESET IS	UNKNOWN				 *	 691
     *172	 ..											 *	 692
     *173	 ..REQUEST NSSC-I EXECUTIVE TO BEGIN COLLECTION	OF 35 BYTES OF SPECIAL			 *	 693
     *174	 ..ENGINEERING DATA EVERY MINOR	FRAME							 *	 694
     *175	 ..NOTE: IT IS OK TO RE-REQUEST	WITHOUT	STOPPING SPECIAL ENGINEERING DATA		 *	 695
     *176	 ..CALL	..THE TELEMETRY	ADDRESSES ARE DEFINED IN NFWORLD				 *	 696
  31 *177	 ZISPED(NFNICMOS_, 35, NFSPEDTA_, NFSPEDIN_, 2,	IRET_)					 *	 697
     *178    ELSE ..INITIALIZATION IS NOT REQUIRED							 *	 698
     *179	 NSLWCONF_ = 0 ..RESET SLEW REQUEST CONFIRMATION REQUIRED FLAG				 *	 699
     *180	 NTDFFWD_ = 0 ..RESET TAKE DATA	FLAG FORWARD FLAG					 *	 700
     *													 *	 701


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.004
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     *181	 NRTCWDCT_ = 0 ..RESET NFCSCOMM	RELATIVE TIME COMMAND SEQUENCE WORD COUNT		 *
     *182	 ..											 *	 702
     *183	 ..RESET HIGH 10 BITS OF ALL SPECIAL ENGINEERING DATA WORDS				 *	 703
     *184	 ..(HIGH BITS ARE SET BY THE CU/SDF)							 *	 704
     *185	 DO FOR	I_ = 0,	34									 *	 705
     *186	     NFSPEDIN_(I_) = IAND(NFSPEDIN_(I_),REPLYMSK_)					 *	 706
     *187	 ENDDO											 *	 707
     *188	 ..											 *	 708
     *189	 ..TEST	FOR VALID SPECIAL ENGINEERING DATA						 *	 709
     *190	 ..IF THE INSTRUMENT IS	NOT IN BOOT AND	NOT IN OPERATE					 *	 710
     *191	 IF ( (NFSWMODE_ .NE. NBOTMODE_) .AND. (NFSWMODE_ .NE. NOPRMODE_) )			 *	 711
     *192	     NFLMODE_ =	-1 ..INDICATE LAST KNOWN MODE IS INVALID				 *	 712
     *193	     ..INCREMENT BAD MODE COUNTER							 *	 713
     *194	     NBADMDCT_ = NBADMDCT_ + 1								 *	 714
     *195	     ..CHECK BAD MODE COUNTER EXCEEDING	MAXIMUM						 *	 715
     *196	     IF	(NBADMDCT_ .GT.	NBADMDMX_)							 *	 716
     *197		 ..IF LAST VALID MODE WAS OPERATE						 *	 717
     *198		 IF (NFLVMODE_ .EQ. NOPRMODE_)							 *	 718
     *199		     ..POST ESB	MESSAGE	AND SUSPEND						 *	 719
   6 *200		     NFACTION(100, NFSWMODE_, NBADMOD1_, NCAPNUM)				 *	 720
     *201		     ..RESET BAD MODE COUNTER SO THAT INSTRUMENT CAN ATTEMPT TO	TRANSITION FROM	 *	 722
     *				     OPERATE TO	BOOT							 *
     *202		     NBADMDCT_ = 0								 *	 723
     *203		     NFLVMODE_ = -1 ..SET TO INVALID TO	INDICATE NO VALID LAST MODE		 *	 724
     *204		 ELSE ..LAST VALID MODE	WAS BOOT OR INVALID					 *	 725
     *205		     ..POST ESB	MESSAGE	AND SAFE						 *	 726
   6 *206		     NFACTION(101, NFSWMODE_, NBADMOD2_, NCAPNUM)				 *	 727
     *207		 ENDIF										 *	 728
     *208	     ENDIF										 *	 729
     *209	 ELSE ..INSTRUMENT IS IN BOOT OR OPERATE						 *	 730
     *210	     ..RESET BAD MODE COUNTER								 *	 731
     *211	     NBADMDCT_ = 0									 *	 732
     *212	     ..											 *	 733
     *213	     ..VERIFY THAT THE MINOR FRAME COUNTER IS ALIVE AND	WELL				 *	 734
     *214	     ..											 *	 735
     *215	     ..INCLUDE										 *	 736
  10 *216	     NFALIVE										 *	 737
     *217	     ..											 *	 738
     *218	     ..LOOK FOR	EMBEDDED REQUESTS IN THE SPECIAL ENGINEERING DATA			 *	 739
     *219	     ..											 *	 740
     *220	     ..CHECK FOR A SAFING REQUEST FROM THE CONTROL SECTION FSW				 *	 741
     *221	     ..											 *	 742
     *222	     ..IF THE NICMOS CONTROL SECTION FSW REQUESTED SAFING				 *	 743
     *223	     IF	((NSAFMSGL_ .NE. 0) .OR. (NSAFMSGH_ .NE. 0))					 *	 744
     *224		 ..COPY	LOW AND	HIGH BITS OF MESSAGE NUMBER TO NSAFMSGT_			 *	 745
     *225		 ..AND ADD OFFSET TO ESB MESSAGE ORIGINATING IN	CONTROL	SECTION			 *	 746
     *226		 NSAFMSGT_ = IOR(NSAFMSGL_, ISHFT(NSAFMSGH_, 8)) + NSAFOFST_			 *	 747
     *227		 ..COPY	LOW AND	HIGH BITS OF PARAMETER TO NSAFPARM_				 *	 748
     *228		 NSAFPARM_ = IOR(NSAFPARL_, ISHFT(NSAFPARH_, 8))				 *	 749
     *													 *	 752


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.005
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     *229		 ..POST	ESB: THE NICMOS	NFCSCOMM PROCESSOR REQUESTED THE ACTIVATION OF THE	 *
     *				 NICMOS	SAFING SEQUENCE, BY REQUEST FROM THE NICMOS CONTROL SECTION	 *
     *				 FLIGHT	SOFTWARE							 *
     *230		 ..CALL	..POST ESB AND SAFE THE	INSTRUMENT					 *	 753
   6 *231		 NFACTION(NSAFMSGT_, NSAFPARM_,	NSAFREQ_, NCAPNUM)				 *	 754
     *232	     ENDIF										 *	 755
     *233	     ..											 *	 756
     *234	     ..CHECK FOR A SUSPEND REQUEST FROM	THE CONTROL SECTION FSW				 *	 757
     *235	     ..											 *	 758
     *236	     ..IF THE NICMOS CONTROL SECTION FSW REQUESTED SUSPEND				 *	 759
     *237	     IF	((NSUSMSGL_ .NE. 0) .OR. (NSUSMSGH_ .NE. 0))					 *	 760
     *238		 ..COPY	LOW AND	HIGH BITS OF MESSAGE NUMBER TO NSUSMSGT_			 *	 761
     *239		 ..AND ADD OFFSET TO ESB MESSAGE ORIGINATING IN	CONTROL	SECTION			 *	 762
     *240		 NSUSMSGT_ = IOR(NSUSMSGL_, ISHFT(NSUSMSGH_, 8)) + NSUSOFST_			 *	 763
     *241		 ..COPY	LOW AND	HIGH BITS OF PARAMETER TO NSUSPARM_				 *	 764
     *242		 NSUSPARM_ = IOR(NSUSPARL_, ISHFT(NSUSPARH_, 8))				 *	 765
     *243		 ..POST	ESB: THE NICMOS	NFCSCOMM PROCESSOR REQUESTED THE ACTIVATION OF THE	 *	 768
     *				 NICMOS	SUSPEND	SEQUENCE, BY REQUEST FROM THE NICMOS CONTROL SECTION	 *
     *				 FLIGHT	SOFTWARE							 *
     *244		 ..CALL	..POST ESB AND SUSPEND THE INSTRUMENT					 *	 769
   6 *245		 NFACTION(NSUSMSGT_, NSUSPARM_,	NSUSREQ_, NCAPNUM)				 *	 770
     *246	     ENDIF ..SUSPEND REQUEST IN	SPECIAL	ED						 *	 771
     *247	     ..											 *	 772
     *248	     ..CHECK FOR AN ESB	POST REQUEST FROM THE CONTROL SECTION FSW			 *	 773
     *249	     ..											 *	 774
     *250	     ..IF THE NICMOS CONTROL SECTION FSW REQUESTED TO POST AN EXECUTIVE	STATUS BUFFER	 *	 776
     *			     MESSAGE									 *
     *251	     IF	((NESBMSGL_ .NE. 0) .OR. (NESBMSGH_ .NE. 0))					 *	 777
     *252		 ..COPY	LOW AND	HIGH BITS OF MESSAGE NUMBER TO NESBMSGT_			 *	 778
     *253		 ..AND ADD OFFSET TO ESB MESSAGE ORIGINATING IN	CONTROL	SECTION			 *	 779
     *254		 NESBMSGT_ = IOR(NESBMSGL_, ISHFT(NESBMSGH_, 8)) + NESBOFST_			 *	 780
     *255		 ..COPY	LOW AND	HIGH BITS OF PARAMETER TO NESBPARM_				 *	 781
     *256		 NESBPARM_ = IOR(NESBPARL_, ISHFT(NESBPARH_, 8))				 *	 782
     *257		 ..POST	ESB NESBMSGT_ WITH PARAMETER NESBPARM_ BY REQUEST FROM THE NICMOS	 *	 784
     *				 CONTROL SECTION FLIGHT	SOFTWARE					 *
     *258		 ..CALL										 *	 785
   6 *259		 NFACTION(NESBMSGT_, NESBPARM_,	0, NCAPNUM)					 *	 786
     *260	     ENDIF ..ESB REQUEST IN SPECIAL ENGINEERING	DATA					 *	 787
     *261	     ..											 *	 788
     *262	     ..CHECK THE REASON	FOR THE	MOST RECENT CONTROL SECTION RESET			 *	 789
     *263	     ..											 *	 790
     *264	     ..	LOOK UP	THE ACTION TO TAKE IN ONE OF FOUR TABLES, NHWRSUSP_, NHWRESET_,		 *	 791
     *265	     ..	NSWRSUSP_, OR NSWRESET_.							 *	 792
     *266	     ..	THE ACTION CAN BE								 *	 793
     *267	     ..	0 = POST AN ESB									 *	 794
     *268	     ..	1 = POST AN ESB	AND SUSPEND THE	NICMOS INSTRUMENT				 *	 795
     *269	     ..	2 = POST AN ESB	AND SAFE THE NICMOS INSTRUMENT					 *	 796
     *270	     ..	3 = DO NOTHING									 *	 797
     *271	     ..											 *	 798
     *													 *	 800


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.006
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     *272	     ..IF THE INSTRUMENT IS IN BOOT MODE (CONTROL SECTION RESET	SETS NICMOS CONTROL	 *
     *			     SECTION SOFTWARE TO BOOT MODE)						 *
     *273	     IF	(NFSWMODE_ .EQ.	NBOTMODE_)							 *	 801
     *274		 .. THE	RESET WILL LATCH, ONLY REPORT A	RESET WHEN IT CHANGES			 *	 802
     *275		 .. IF THERE HAS BEEN A	NEW RESET OF THE CONTROL SECTION FLIGHT	SOFTWARE	 *	 803
     *276		 IF ( (NRESET_ .NE. 0) .AND. (NRESET_ .NE. NLRESET_) )				 *	 804
     *277		     ..IF THIS WAS A HARDWARE RESET						 *	 805
     *278		     IF	(NRESET_ .GT. 127)							 *	 806
     *279			 ..IF NRESET_ IS IN RANGE AND AN ODD NUMBER (LSB SET INDICATES HARDWARE	 *	 808
     *					 RESET)								 *
     *280			 IF ( (NRESET_ .LE. NHARDMX_) .AND. ( IAND(NRESET_, 1) .EQ. 1) )	 *	 809
     *281			     ..CALCULATE OFFSET	INTO HARDWARE RESET TABLE			 *	 810
     *282			     ..USE LOW SIX BITS	OF NRESET_ SHIFTED ONE BIT TO THE RIGHT		 *	 811
     *283			     NHWRSPTR_ = ISHFT(IAND(NRESET_, "077),-1)				 *	 812
     *284			     ..IF THE INSTRUMENT IS SUSPENDED					 *	 813
     *285			     IF	(NSUSTATE_ .EQ.	1)						 *	 814
     *286				 ..LOOK	UP ACTION IN SUSPEND HARDWARE RESET TABLE		 *	 815
     *287				 NRSACTN_ = NHWRSUSP_(NHWRSPTR_)				 *	 816
     *288			     ELSE								 *	 817
     *289				 ..LOOK	UP ACTION IN NONSUSPEND	HARDWARE RESET TABLE		 *	 818
     *290				 NRSACTN_ = NHWRESET_(NHWRSPTR_)				 *	 819
     *291			     ENDIF								 *	 820
     *292			 ELSE									 *	 821
     *293			     NRSACTN_ =	NHWRSOTR_ ..HARDWARE RESET NUMBER OUT OF RANGE		 *	 822
     *294			 ENDIF									 *	 823
     *295		     ELSE ..THIS WAS A SOFTWARE	RESET						 *	 824
     *296			 ..IF NRESET_ IS IN RANGE						 *	 825
     *297			 IF (NRESET_ .LE. NSOFTMX_)						 *	 826
     *298			     ..IF THE INSTRUMENT IS SUSPENDED					 *	 827
     *299			     IF	(NSUSTATE_ .EQ.	1)						 *	 828
     *300				 ..LOOK	UP ACTION IN SUSPEND SOFTWARE RESET TABLE		 *	 829
     *301				 NRSACTN_ = NSWRSUSP_(NRESET_ -	1)				 *	 830
     *302			     ELSE ..ELSE THE SOFTWARE IS NOT SUSPENDED				 *	 831
     *303				 ..LOOK	UP ACTION IN NONSUSPEND	SOFTWARE RESET TABLE		 *	 832
     *304				 NRSACTN_ = NSWRESET_(NRESET_ -	1)				 *	 833
     *305			     ENDIF								 *	 834
     *306			 ELSE									 *	 835
     *307			     NRSACTN_ =	NSWRSOTR_ ..SOFTWARE RESET NUMBER OUT OF RANGE		 *	 836
     *308			 ENDIF									 *	 837
     *309		     ENDIF ..HARDWARE/SOFTWARE RESET						 *	 838
     *310		     ..POST ESB	104 WITH PARAMETER NRESET_, TAKE ACTION	AS DETERMINED ABOVE	 *	 839
   6 *311		     NFACTION(104, NRESET_, NRSACTN_, NCAPNUM)					 *	 840
     *312		 ENDIF										 *	 841
     *313	     ENDIF										 *	 842
     *314	     ..SAVE CURRENT RESET TO LAST RESET	FOR NEXT INVOCATION OF AP			 *	 843
     *315	     NLRESET_ =	NRESET_									 *	 844
     *316	     ..											 *	 845
     *317	     ..IF NOT SUSPENDED	OR SAFED AND IN	OPERATE	MODE HANDLE A SLEW REQUEST		 *	 846
     *318	     IF	((NSUSTATE_ .EQ. 0) .AND. (SAFING_(NFNICMOS_) .EQ. 0) .AND. (NFSWMODE_ .EQ.	 *	 848
     *													 *


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.007
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     *			     NOPRMODE_))								 *
     *319		 ..CHECK FOR A SLEW REQUEST FROM THE CONTROL SECTION FSW			 *	 849
     *320		 ..										 *	 850
     *321		 ..INCLUDE									 *	 851
  11 *322		 NFSLEW										 *	 852
     *323	     ENDIF										 *	 853
     *324	     ..											 *	 854
     *325	     ..CHECK THE CHECKSUM WORD TO MANAGE THE NICMOS EVENT FLAG				 *	 855
     *326	     ..											 *	 856
     *327	     ..IF THE CHECKSUM TEST PASSED							 *	 857
     *328	     IF	(NCKSMIND_ .EQ.	"49 HEX")							 *	 858
     *329		 ..SET THE NICMOS EVENT	FLAG							 *	 859
     *330		 ..CALL										 *	 860
  29 *331		 ZISEF(	NFNICMOS_, NCKSMEFL_, IRET_)						 *	 861
     *332	     ELSE										 *	 862
     *333		 ..IF THE CHECKSUM TEST	FAILED							 *	 863
     *334		 IF (NCKSMIND_ .NE. 0)								 *	 864
     *335		     ..RESET THE NICMOS	EVENT FLAG						 *	 865
     *336		     ..CALL									 *	 866
  26 *337		     ZIREF( NFNICMOS_, NCKSMEFL_, IRET_)					 *	 867
     *338		     ..POST ESB	MESSAGE	WITH THE PARAMETER NOTING THE CHECKSUM FAILED VALUE	 *	 868
     *339		     ..CALL									 *	 869
   6 *340		     NFACTION(109, NCKSMIND_, NBADCKSM_, NCAPNUM)				 *	 870
     *341		     ..SET A FLAG TO NOTE CHECKSUM FAILURE, IT MUST BE CLEARED BY THE GROUND	 *	 871
     *342		     NFCKSMFL_ = 1								 *	 872
     *343		 ENDIF										 *	 873
     *344	     ENDIF										 *	 874
     *345	     ..											 *	 875
     *346	     ..IF NOT SUSPENDED	OR SAFED HANDLE	THE TAKE DATA FLAG				 *	 876
     *347	     IF	((NSUSTATE_ .EQ. 0) .AND. (SAFING_(NFNICMOS_) .EQ. 0))				 *	 877
     *348		 ..HANDLE TAKE DATA FLAG							 *	 878
     *349		 ..										 *	 879
     *350		 ..IF THE NICMOS INSTRUMENT IS IN OPERATE MODE					 *	 880
     *351		 IF (NFSWMODE_ .EQ. NOPRMODE_)							 *	 881
     *352		     ..GET THE CURRENT VALUE OF	THE TDF	FROM THE SSM PIT			 *	 882
     *353		     ..CALL ..READ WORD	2 OF THE MOST RECENT SSM PIT				 *	 883
  32 *354		     ZIPITR(2, PITWRD2_, IRET_)							 *	 884
     *355		     NTDFCUR_ =	IAND(PITWRD2_, TDFMASK_) ..GET TAKE-DATA FLAG FROM SSM PIT	 *	 885
     *356		     ..THE TAKE	DATA FLAG NEEDS	TO BE FORWARDED	IF CURRENT TDF VALUE IS		 *	 886
     *357		     ..DIFFERENT FROM SAVED TDF	VALUE OR THE INSTRUMENT	JUST SWITCHED FROM	 *	 887
     *358		     ..BOOT TO OPERATE								 *	 888
     *359		     IF	((NTDFCUR_ .NE.	NTDFSAVE_) .OR.	(NFLMODE_ .NE. NOPRMODE_) )		 *	 889
     *360			 NTDFSAVE_ = NTDFCUR_ ..COPY CURRENT TDF VALUE TO SAVED	TDF VALUE	 *	 890
     *361			 NTDFFWD_ = 1 ..SET THE	TAKE DATA FLAG FORWARD FLAG			 *	 891
     *362		     ENDIF									 *	 892
     *363		 ENDIF										 *	 893
     *364	     ENDIF										 *	 894
     *365	     ..											 *	 895
     *366	     ..CREATE AND SEND THE NFCSCOMM RTCS THAT WILL SEND	THE SLEW CONFIRMATION		 *	 896
     *													 *	 897


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		       PAGE  9.008
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSCOMM  (PROCESSOR #21)	 (continued)


     *													 *
     *367	     ..MACRO ACTIVATE COMMAND AND/OR FORWARD THE TAKE DATA FLAG				 *
     *368	     ..											 *	 898
     *369	     ..IF THE NICMOS INSTRUMENT	IS NOT IN THE SUSPEND STATE OR SAFE STATE		 *	 899
     *370	     IF	( (NSUSTATE_ .EQ. 0) .AND. (SAFING_(NFNICMOS_) .EQ. 0) )			 *	 900
     *371		 ..DETERMINE IF	THE NFCSCOMM RTCS IS NECESSARY,	THEN CREATE AND	SEND IT		 *	 901
     *372		 ..INCLUDE									 *	 902
  12 *373		 NFCSSEND									 *	 903
     *374	     ENDIF ..NOT SUSPENDED OR SAFED							 *	 904
     *375	     ..											 *	 905
     *376	     ..NFSWMODE_ IS EITHER BOOT	OR OPERATE, BOTH VALID MODES				 *	 906
     *377	     ..SAVE THE	LAST VALID MODE	FOR THE	NEXT BAD MODE PROCESSING			 *	 907
     *378	     ..AND THE LAST KNOWN MODE FOR THE NEXT TDF	PROCESSING				 *	 908
     *379	     NFLMODE_ =	NFSWMODE_ ..SAVE LAST KNOWN MODE					 *	 909
     *380	     NFLVMODE_ = NFSWMODE_ ..SAVE LAST VALID MODE					 *	 910
     *381	 ENDIF ..CHECK SPECIAL ENGINEERING DATA	VALID						 *	 911
     *382    ENDIF											 *	 912
     *383    ..	COPY ITEMS INTO	NSSC-I MEMORY BUFFER FOR REPORTING IN REGULAR TELEMETRY			 *	 913
     *384    ..	ONLY REPORT ITEMS FROM SPECIAL ENGINEERING DATA	IF THEY	ARE NONZERO			 *	 914
     *385    IF	(NXSLEWLO_ .NE.	0)									 *	 915
     *386	 NSWSPED_(1) = NXSLEWLO_								 *	 916
     *387    ENDIF											 *	 917
     *388    IF	(NXSLEWHI_ .NE.	0)									 *	 918
     *389	 NSWSPED_(2) = NXSLEWHI_								 *	 919
     *390    ENDIF											 *	 920
     *391    IF	(NYSLEWLO_ .NE.	0)									 *	 921
     *392	 NSWSPED_(3) = NYSLEWLO_								 *	 922
     *393    ENDIF											 *	 923
     *394    IF	(NYSLEWHI_ .NE.	0)									 *	 924
     *395	 NSWSPED_(4) = NYSLEWHI_								 *	 925
     *396    ENDIF											 *	 926
     *397    IF	(NSLEWDET_ .NE.	0)									 *	 927
     *398	 NSWSPED_(5) = NSLEWDET_								 *	 928
     *399    ENDIF											 *	 929
     *400    ..NOTE: ZERO IS A VALID UPDATE VALUE FOR THE MINOR	FRAME					 *	 930
     *401    ..	NUMBER AND NOT A DEFAULT STATE VALUE.							 *	 931
     *402    NSWSPED_(6) = NMINFRCT_									 *	 932
     *403    ..NOTE: ZERO IS NOT THE DEFAULT STATE FOR THE SOFTWARE MODE				 *	 933
     *404    NSWSPED_(7) = NFSWMODE_									 *	 934
     *405    IF	(NRESET_ .NE. 0)									 *	 935
     *406	 NSWSPED_(8) = NRESET_									 *	 936
     *407    ENDIF											 *	 937
     *408    IF	(NCKSMIND_ .NE.	0)									 *	 938
     *409	 NSWSPED_(9) = NCKSMIND_								 *	 939
     *410    ENDIF											 *	 940
     *411    RETURN											 *	 941
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  10
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFALIVE

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = NFALIVE									 *	 943
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	 944
     *	3    ..ENGLISH NAME = KEEP ALIVE								 *	 945
     *	4    ..LANGUAGE	= CFG PDL									 *	 946
     *	5    ..PURPOSE = VERIFY	THAT THE MINOR FRAME COUNTER IS	ALIVE AND WELL (MINOR FRAME COUNTER	 *	 948
     *		     SHOULD INCREMENT BY ONE EVERY EXECUTION)						 *
     *	6    ..NOTES = AT THE MAJOR FRAME BOUNDARY ONE FAILURE IS EXPECTED				 *	 949
     *	7    ..CALLING SEQUENCE	= INCLUDE NFALIVE							 *	 950
     *	8    ..GLOBAL INPUTS = MINFRMNO_, NFSWMODE_, NMFAIL_, NMFCFLBT_, NMFCFLOP_, NMINFRCT_		 *	 952
     *	9    ..GLOBAL OUTPUTS =	NMFAIL_									 *	 953
     * 10    ..SUBRS CALLED = NFACTION									 *	 954
     * 11    ..--------------------------------------------------------------------			 *	 955
     * 12    DATA LOCAL											 *	 956
     * 13    ..SEE LOCAL DATA LIST IN SEGMENT NFCSCOMM							 *	 957
     * 14    NMFAILMX_[10] = THE MAXIMUM NUMBER	OF MINOR FRAME COUNTER FAILURES	ALLOWED			 *	 958
     * 15    NMFCHECK_[1] = A FLAG TO ENABLE/DISABLE MINOR FRAME CHECKING				 *	 959
     * 16    ..	0 = MINOR FRAME	CHECKING DISABLED							 *	 960
     * 17    ..	1 = MINOR FRAME	CHECKING ENABLED							 *	 961
     * 18    TEMP_ = TEMPORARY VARIABLE									 *	 962
     * 19    ENDDATA											 *	 963
     * 20    ..VERIFY THAT THE MINOR FRAME COUNTER IS ALIVE AND	WELL					 *	 964
     * 21    ..IF THE MINOR FRAME COUNTER DID NOT INCREMENT BY ONE					 *	 965
     * 22    ..AND MINOR FRAME CHECKING	IS ENABLED							 *	 966
     * 23    IF	(((NMINFRCT_ - NLMNFRCT_) .NE. 1) .AND.	(NMFCHECK_ .EQ.	1) )				 *	 967
     * 24	 ..INCREMENT THE MINOR FRAME COUNTER FAILURE WORD					 *	 968
     * 25	 NMFAIL_ = NMFAIL_ + 1									 *	 969
     * 26	 ..IF THE NUMBER OF FAILURES EXCEEDS THE MAXIMUM					 *	 970
     * 27	 IF (NMFAIL_ .GT. NMFAILMX_)								 *	 971
     * 28	     ..SAVE CONTROL SECTION MINOR FRAME	COUNT AND NSSC-I MINOR FRAME COUNT TO USE IN	 *	 973
     *			     EXECUTIVE STATUS BUFFER MESSAGE POST BELOW					 *
     * 29	     TEMP_ = IOR(NMINFRCT_, ISHFT(MINFRMNO_, 9))					 *	 974
     * 30	     ..IF INSTRUMENT IS	IN OPERATE MODE							 *	 975
     * 31	     IF	(NFSWMODE_ .EQ.	NOPRMODE_)							 *	 976
     * 32		 ..SUSPEND THE INSTRUMENT							 *	 977
     * 33		 ..POST	ESB 105	WITH PARAMETER INDICATING NSSC-I MINOR FRAME COUNTER AND CONTROL *	 979
     *				 SECTION MINOR FRAME COUNTER						 *
     * 34		 ..CALL										 *	 980
   6 * 35		 NFACTION(105, TEMP_, NMFCFLOP_, NCAPNUM)					 *	 981
     * 36		 ..RESET THE MINOR FRAME COUNTER FAILURE WORD SO THAT THE INSTRUMENT		 *	 982
     * 37		 CAN ATTEMPT TO	TRANSITION FROM	OPERATE	TO BOOT					 *	 983
     * 38		 NMFAIL_ = 0									 *	 984
     * 39	     ELSE ..THE	INSTRUMENT IS IN BOOT MODE						 *	 985
     * 40		 ..SAFE	THE INSTRUMENT								 *	 986
     * 41		 ..POST	ESB 106	WITH PARAMETER INDICATING NSSC-I MINOR FRAME COUNTER AND CONTROL *	 988
     *				 SECTION MINOR FRAME COUNTER						 *
     * 42		 ..CALL										 *	 989
   6 * 43		 NFACTION(106, TEMP_, NMFCFLBT_, NCAPNUM)					 *	 990
     * 44	     ENDIF										 *	 991
     *													 *	 992


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  10.001
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFALIVE   (continued)


     *													 *
     * 45	 ENDIF											 *
     * 46    ELSE											 *	 993
     * 47	 ..RESET THE MINOR FRAME COUNTER FAILURE WORD						 *	 994
     * 48	 NMFAIL_ = 0										 *	 995
     * 49    ENDIF											 *	 996
     * 50    NLMNFRCT_ = NMINFRCT_ ..SAVE CURRENT MINOR	FRAME COUNT FOR	NEXT INVOCATION	OF THE PROCESSOR *	 998
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  11
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFSLEW

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = NFSLEW									 *	1000
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	1001
     *	3    ..ENGLISH NAME = SLEW									 *	1002
     *	4    ..LANGUAGE	= CFG PDL									 *	1003
     *	5    ..PURPOSE = PROCESS A SLEW	REQUEST	FROM SPECIAL ENGINEERING DATA				 *	1004
     *	6    ..NOTES = CONTROL SECTION ACKNOWLEDGES SLEW CONFIRMATION BY SETTING NSLEWDET_ TO 0		 *	1006
     *	7    ..CALLING SEQUENCE	= INCLUDE NFSLEW							 *	1007
     *	8    ..GLOBAL INPUTS = NSLEWDET_, NSLWFAIL_, NXSLEWHI_,	NXSLEWLO_, NYSLEWHI_, NYSLEWLO_		 *	1009
     *	9    ..GLOBAL OUTPUTS =	NONE									 *	1010
     * 10    ..SUBRS CALLED = NFACTION,	ZISLEW								 *	1011
     * 11    ..--------------------------------------------------------------------			 *	1012
     * 12    DATA LOCAL											 *	1013
     * 13    ..SEE LOCAL DATA LIST IN SEGMENT NFCSCOMM							 *	1014
     * 14    ..THE IDENTITY MATRIX WILL	BE USED	UNTIL ACTUAL VALUES ARE	SUPPLIED BY THE	INSTRUMENT TEAM	 *	1016
     *		     FOR THE FOLLOWING THREE MATRICES.							 *
     * 15    NFSLMAT1_(2,2) = MATRIX FOR SLEW FOR DETECTOR NUMBER 1					 *	1017
     * 16    ..	(0 DEG.; SCALE = 2**(-17))								 *	1018
     * 17    ..	(1,1) =	"0377777									 *	1019
     * 18    ..	(1,2) =	0										 *	1020
     * 19    ..	(2,1) =	0										 *	1021
     * 20    ..	(2,2) =	"0377777									 *	1022
     * 21    NFSLMAT2_(2,2) = MATRIX FOR SLEW FOR DETECTOR NUMBER 2					 *	1023
     * 22    ..	(0 DEG.; SCALE = 2**(-17))								 *	1024
     * 23    ..	(1,1) =	"0377777									 *	1025
     * 24    ..	(1,2) =	0										 *	1026
     * 25    ..	(2,1) =	0										 *	1027
     * 26    ..	(2,2) =	"0377777									 *	1028
     * 27    NFSLMAT3_(2,2) = MATRIX FOR SLEW FOR DETECTOR NUMBER 3					 *	1029
     * 28    ..	(0 DEG.; SCALE = 2**(-17))								 *	1030
     * 29    ..	(1,1) =	"0377777									 *	1031
     * 30    ..	(1,2) =	0										 *	1032
     * 31    ..	(2,1) =	0										 *	1033
     * 32    ..	(2,2) =	"0377777									 *	1034
     * 33    NMATXADR_ = ADDRESS OF CURRENT SLEW MATRIX							 *	1035
     * 34    NSLEWVEC_(2) = VECTOR FOR SLEW								 *	1036
     * 35    ENDDATA											 *	1037
     * 36    ..CHECK FOR A SLEW	REQUEST	FROM THE CONTROL SECTION FLIGHT	SOFTWARE			 *	1038
     * 37    ..IF READY	TO HANDLE A SLEW REQUEST							 *	1039
     * 38    IF	(NSLEWREQ_ .EQ.	0)									 *	1040
     * 39	 ..IF THE DETECTOR NUMBER SELECTED FOR THIS SLEW IS INVALID				 *	1041
     * 40	 IF ( (NSLEWDET_ .GT. 3) .OR. (NSLEWDET_ .LT. 0) )					 *	1042
     * 41	     ..POST ESB	MESSAGE	103								 *	1043
   6 * 42	     NFACTION(103, NSLEWDET_, NDETINVD_, NCAPNUM)					 *	1044
     * 43	     ..ELSEIF THE NICMOS CONTROL SECTION FSW REQUESTED A SLEW BY SETTING THE SLEW	 *	1046
     *			     DETECTOR NUMBER TO	A NONZERO VALUE						 *
     * 44	 ELSEIF	(NSLEWDET_ .NE.	0)								 *	1047
     * 45	     NSLWCONF_ = 1 ..SET SLEW CONFIRMATION REQUIRED FLAG				 *	1048
     * 46	     NSLEWREQ_ = 1 ..SET SLEW REQUEST FLAG						 *	1049
     *													 *	1050


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  11.001
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFSLEW   (continued)


     *													 *
     * 47	     ..COPY THE	SLEW DATA TO THE SLEW VECTOR						 *
     * 48	     NSLEWVEC_(1) = IOR(NXSLEWLO_, ISHFT(NXSLEWHI_, 8))					 *	1051
     * 49	     NSLEWVEC_(2) = IOR(NYSLEWLO_, ISHFT(NYSLEWHI_, 8))					 *	1052
     * 50	     ..SELECT THE CORRECT SLEW MATRIX							 *	1053
     * 51	     ..IF DETECTOR 1 IS	BEING USED							 *	1054
     * 52	     IF	(NSLEWDET_ .EQ.	1)								 *	1055
     * 53		 ..COPY	ADDRESS	OF SLEW	MATRIX 1 TO NMATXADR_					 *	1056
     * 54		 NMATXADR_ = ADDRESS OF	NFSLMAT1_						 *	1057
     * 55		 ..ELSEIF DETECTOR 2 IS	BEING USED						 *	1058
     * 56	     ELSEIF (NSLEWDET_ .EQ. 2)								 *	1059
     * 57		 ..COPY	ADDRESS	OF SLEW	MATRIX 2 TO NMATXADR_					 *	1060
     * 58		 NMATXADR_ = ADDRESS OF	NFSLMAT2_						 *	1061
     * 59	     ELSE ..DETECTOR 3 IS BEING	USED							 *	1062
     * 60		 ..COPY	ADDRESS	OF SLEW	MATRIX 3 TO NMATXADR_					 *	1063
     * 61		 NMATXADR_ = ADDRESS OF	NFSLMAT3_						 *	1064
     * 62	     ENDIF ..DETECTOR CHECK								 *	1065
     * 63	     ..REQUEST COORDINATE TRANSFORM AND	SLEW REQUEST					 *	1066
     * 64	     ..CALL										 *	1067
  30 * 65	     ZISLEW(NSLEWVEC_, NMATXADR_, IRET_)						 *	1068
     * 66	     ..CHECK RETURN STATUS FROM	EXECUTIVE REQUEST					 *	1069
     * 67	     ..IF THE RETURN CODE INDICATES AN ERROR						 *	1070
     * 68	     IF	(IRET_ .NE. 0)									 *	1071
     * 69		 ..POST	ESB 102	WITH PARAMETER IRET_: THE NSSC-I EXECUTIVE REFUSED TO HONOR A	 *	1073
     *				 NICMOS	SLEW REQUEST							 *
     * 70		 ..CALL										 *	1074
   6 * 71		 NFACTION(102, IRET_, NSLWFAIL_, NCAPNUM)					 *	1075
     * 72	     ENDIF ..RETURN STATUS FROM	EXECUTIVE REQUEST					 *	1076
     * 73	 ENDIF ..CHECK DETECTOR	NUMBER								 *	1077
     * 74	 ..ELSEIF PREVIOUS SLEW	REQUEST	HAS CLEARED						 *	1078
     * 75    ELSEIF (NSLEWDET_ .EQ. 0)									 *	1079
     * 76	 NSLEWREQ_ = 0 ..RESET SLEW REQUEST FLAG						 *	1080
     * 77    ENDIF ..READY TO HANDLE A SLEW REQUEST							 *	1081
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  12
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSSEND

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = NFCSSEND									 *	1083
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	1084
     *	3    ..ENGLISH NAME = CREATE AND SEND NFCSCOMM SEQUENCE						 *	1085
     *	4    ..LANGUAGE	= CFG PDL									 *	1086
     *	5    ..PURPOSE = CREATE	AND SEND NFCSCOMM SEQUENCE						 *	1087
     *	6    ..NOTES = NONE										 *	1088
     *	7    ..CALLING SEQUENCE	= INCLUDE NFCSSEND							 *	1089
     *	8    ..GLOBAL INPUTS = NCOMRTSE_, NFNICMOS_, NIDXCOMM_,	NOOPCMD_				 *	1090
     *	9    ..GLOBAL OUTPUTS =	NCOMSKEL_								 *	1091
     * 10    ..SUBRS CALLED = NFACTION,	ZIDELT,	ZIRTCC							 *	1092
     * 11    ..--------------------------------------------------------------------			 *	1093
     * 12    DATA LOCAL											 *	1094
     * 13    ..NOTE THE	THREE COMMANDS BELOW WOULD NEED	TO BE MODIFIED BY THE GROUND FOR		 *	1095
     * 14    ..CROSS STRAPPING PURPOSES									 *	1096
     * 15    NSLEWMAC_(3) = ["040000,"031120,"000433] ..THE SLEW CONFIRMATION MACRO			 *	1097
     * 16    NTDFDMAC_(3) = ["040000,"031120,"000435] ..THE TAKE DATA FLAG DOWN	MACRO			 *	1098
     * 17    NTDFUMAC_(3) = ["040000,"031120,"000436] ..THE TAKE DATA FLAG UP MACRO			 *	1099
     * 18    ENDDATA											 *	1100
     * 19    ..IF A SLEW REQUEST CONFIRMATION SHOULD BE	SENT						 *	1101
     * 20    IF	(NSLWCONF_ .EQ.	1)									 *	1102
     * 21	 ..FORMAT A NICMOS SERIAL MAGNITUDE COMMAND CONFIRMING A SLEW REQUEST RECEIVED		 *	1104
     * 22	 ..COPY	SLEW CONFIRMATION MACRO	ACTIVATE COMMAND TO THE	NFCSCOMM SKELETON		 *	1105
     * 23	 NCOMSKEL_(NRTCWDCT_) =	NSLEWMAC_(1)							 *	1106
     * 24	 NCOMSKEL_(NRTCWDCT_ + 1) = NSLEWMAC_(2)						 *	1107
     * 25	 NCOMSKEL_(NRTCWDCT_ + 2) = NSLEWMAC_(3)						 *	1108
     * 26	 ..INCREASE THE	RTCS WORD COUNT	TO ACCOUNT FOR A 27 BIT	COMMAND				 *	1109
     * 27	 NRTCWDCT_ = NRTCWDCT_ + 3								 *	1110
     * 28    ENDIF ..SLEW CONFIRMATION									 *	1111
     * 29    ..IF THE TAKE DATA	FLAG NEEDS TO BE FORWARDED						 *	1112
     * 30    IF	(NTDFFWD_ .EQ. 1)									 *	1113
     * 31	 ..FORMAT A NICMOS SERIAL MAGNITUDE COMMAND CONTAINING THE VALUE OF THE	HST TAKE DATA	 *	1115
     *			 FLAG										 *
     * 32	 ..IF THE TAKE DATA FLAG IS DOWN							 *	1116
     * 33	 IF (NTDFCUR_ .EQ. 0)									 *	1117
     * 34	     ..COPY TAKE DATA FLAG DOWN	MACRO ACTIVATE COMMAND TO THE NFCSCOMM SKELETON		 *	1118
     * 35	     NCOMSKEL_(NRTCWDCT_) = NTDFDMAC_(1)						 *	1119
     * 36	     NCOMSKEL_(NRTCWDCT_ + 1) =	NTDFDMAC_(2)						 *	1120
     * 37	     NCOMSKEL_(NRTCWDCT_ + 2) =	NTDFDMAC_(3)						 *	1121
     * 38	 ELSE ..THE TAKE DATA FLAG IS UP							 *	1122
     * 39	     ..COPY TAKE DATA FLAG UP MACRO ACTIVATE COMMAND TO	THE NFCSCOMM SKELETON		 *	1123
     * 40	     NCOMSKEL_(NRTCWDCT_) = NTDFUMAC_(1)						 *	1124
     * 41	     NCOMSKEL_(NRTCWDCT_ + 1) =	NTDFUMAC_(2)						 *	1125
     * 42	     NCOMSKEL_(NRTCWDCT_ + 2) =	NTDFUMAC_(3)						 *	1126
     * 43	 ENDIF											 *	1127
     * 44	 ..INCREASE THE	RTCS WORD COUNT	TO ACCOUNT FOR A 27 BIT	COMMAND				 *	1128
     * 45	 NRTCWDCT_ = NRTCWDCT_ + 3								 *	1129
     * 46    ENDIF ..TDF FORWARD									 *	1130
     * 47    ..IF THE NFCSCOMM SEQUENCE	NEEDS TO BE ACTIVATED						 *	1131
     *													 *	1132


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  12.001
01 JAN 95	CONTROL	SECTION	COMMUNICATION PROCESSOR


     NFCSSEND	(continued)


     *													 *
     * 48    IF	(NRTCWDCT_ .NE.	0)									 *
     * 49	 ..COPY	SOFTWARE NOOP COMMAND WITH A 25	MSEC TIMETAG TO	THE NFCSCOMM SKELETON		 *	1133
     * 50	 NCOMSKEL_(NRTCWDCT_) =	NOOPCMD_(1)							 *	1134
     * 51	 NCOMSKEL_(NRTCWDCT_ + 1) = NOOPCMD_(2)							 *	1135
     * 52	 NCOMSKEL_(NRTCWDCT_ + 2) = NOOPCMD_(3)							 *	1136
     * 53	 ..UPDATE RUNNING COUNT	OF TOTAL NUMBER	OF COMMANDS SENT FROM THE NFCSCOMM AP TO THE	 *	1138
     *			 INSTRUMENT (OVERFLOW REGISTER WILL NEED TO BE RESET)				 *
     * 54	 NCOMCNT_ = MOD( (NCOMCNT_ + NRTCWDCT_/3), 2**18)					 *	1139
     * 55	 ..INCREASE THE	RTCS WORD COUNT	TO ACCOUNT FOR A 27 BIT	COMMAND				 *	1140
     * 56	 NRTCWDCT_ = NRTCWDCT_ + 3								 *	1141
     * 57	 ..PUT LENGTH OF NICMOS	NFCSCOMM SKELETON INTO INDEX TABLE				 *	1142
     * 58	 ..CALL	..RELATIVE TIME	COMMAND	INDEX MAINTENANCE					 *	1143
  24 * 59	 ZIDELT(1, NFNICMOS_, NRTCWDCT_, 3, NCAPNUM, IRET_)					 *	1144
     * 60	 ..IF THE RETURN CODE INDICATES	AN ERROR						 *	1145
     * 61	 IF (IRET_ .NE.	0)									 *	1146
     * 62	     ..POST ESB	107 WITH PARAMETER IRET_: THE RETURN CODE FROM THE NSSC-I EXECUTIVE	 *	1150
     *			     SERVICE TO	MODIFY THE INDEX TABLE ENTRY FOR THE NICMOS-UNIQUE NFCSCOMM	 *
     *			     SEQUENCE DOES NOT INDICATE	SUCCESS						 *
     * 63	     ..CALL ..POST ESB AND SUSPEND THE INSTRUMENT					 *	1151
   6 * 64	     NFACTION(107, IRET_, NIDXCOMM_, NCAPNUM)						 *	1152
     * 65	 ELSE											 *	1153
     * 66	     ..ACTIVATE	NICMOS NFCSCOMM	SEQUENCE						 *	1154
     * 67	     ..CALL										 *	1155
  27 * 68	     ZIRTCC(1, 1, NFNICMOS_, NFNICMOS_,	IRET_, NCAPNUM)					 *	1156
     * 69	     ..IF THE RETURN CODE INDICATES AN ERROR						 *	1157
     * 70	     IF	(IRET_ .NE. 0)									 *	1158
     * 71		 ..POST	ESB 108	WITH PARAMETER IRET_: THE RETURN CODE FROM THE NSSC-I EXECUTIVE	 *	1161
     *				 SERVICE TO ACTIVATE THE THE NICMOS-UNIQUE NFCSCOMM SEQUENCE DOES NOT	 *
     *				 INDICATE SUCCESS							 *
     * 72		 ..CALL	..POST ESB AND SUSPEND THE INSTRUMENT					 *	1162
   6 * 73		 NFACTION(108, IRET_, NCOMRTSE_, NCAPNUM)					 *	1163
     * 74	     ENDIF										 *	1164
     * 75	 ENDIF											 *	1165
     * 76    ENDIF ..ACTIVATE SEQUENCE									 *	1166
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  13
01 JAN 95

























				       ***************************
				       *			 *
				       * MACRO COMMAND PROCESSOR *
				       *			 *
				       ***************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  14
01 JAN 95	MACRO COMMAND PROCESSOR


     NFMACRO  (PROCESSOR #22)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..PROCESSOR NAME =	NFMACRO	******** APPLICATION PROCESSOR NUMBER 22 ********		 *	1169
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	1170
     *	3    ..ENGLISH NAME = MACRO COMMAND PROCESSOR							 *	1171
     *	4    ..LANGUAGE	= CFG PDL									 *	1172
     *	5    ..PURPOSE = BUILD AND FORWARD MACRO COMMANDS TO NICMOS INSTRUMENT				 *	1173
     *	6    ..NOTES = COMPLETELY LOADED IMPLIES THAT AN IMMEDIATE MACRO ACTIVATE COMMAND WAS FOUND OR A *	1176
     *		     NORMAL MACRO ACTIVATE WAS FOUND PRECEDED BY 0 TO 47 DATA LOAD COMMANDS.		 *
     *	7    ..CALLING SEQUENCE	= SYNCHRONOUS, ONCE EVERY SECOND AS SOON AFTER THE COMPLETION OF	 *	1179
     *		     EXECUTIVE ABSOLUTE	TIME COMMAND PROCESSING	AS IS FEASIBLE,	WITH INITIALIZATION AT	 *
     *		     THE INITIAL ENABLING FOR EXECUTION.						 *
     *	8    ..GLOBAL INPUTS = INDXROW_, IXTABLE_, NBOTMODE_, NFNICMOS_, NFSWMODE_, NIDXMAC_, NMACCNT_,	 *	1182
     *		     NMACRTSE_,	NMAPNUM_, NMRTSARB_, NMRTSASB_,	NOOPCMD_, NOPRMODE_, NSUSTATE_,SI2USEQT_ *
     *	9    ..GLOBAL OUTPUTS =	NCLRQFLG_, NFBUFILL_, NMACCNTH_, NMACCNT_, NMACSKEL_			 *	1183
     * 10    ..SUBRS CALLED = NFACTION,	ZIDELT,	ZIRTCC							 *	1184
     * 11    ..---------------------------------------------------------------------------		 *	1185
     * 12    DATA LOCAL											 *	1186
     * 13    HIBACNST_["0340000] = INHIBIT, ACTIVE, AND	NESTED BITS IN STATUS WORD OF INDEX TABLE	 *	1188
     * 14    ALLBUFWD_[240] = 5	BUFFERS	* 48 WORDS PER BUFFER						 *	1189
     * 15    I_	= TEMPORARY LOOP COUNTER								 *	1190
     * 16    IRET_ = RETURN CODE FROM FLIGHT EXEC SUBROUTINES						 *	1191
     * 17    NBUFFER_ =	THE NUMBER OF THE CURRENT BUFFER						 *	1192
     * 18    ..	0 = STORED COMMAND BUFFER FOR DETECTOR 1 MACRO CMDS					 *	1193
     * 19    ..	1 = STORED COMMAND BUFFER FOR DETECTOR 2 MACRO CMDS					 *	1194
     * 20    ..	2 = STORED COMMAND BUFFER FOR DETECTOR 3 MACRO CMDS					 *	1195
     * 21    ..	3 = STORED COMMAND BUFFER FOR INSTRUMENT OPS MACRO CMDS					 *	1196
     * 22    ..	4 = REAL TIME COMMAND BUFFER								 *	1197
     * 23    NBUFWORD_ = LOOP COUNTER TO GO THROUGH EACH WORD IN A BUFFER				 *	1198
     * 24    ..SET BY SUBROUTINE NFLOADED								 *	1199
     * 25    ..USED BY SUBROUTINE NFUNLOAD								 *	1200
     * 26    NCLRBOOT_["020024]	..THIRD	WORD OF	NCLRCMD	AS A BOOT MACRO					 *	1201
     * 27    NCLRCMD_(3) = ["040000,"031120,0] ..NICMOS	CLEAR ALL QUEUES COMMAND			 *	1202
     * 28    NCLROPER_["000025]	..THIRD	WORD OF	NCLRCMD	AS AN OPERATE MACRO				 *	1203
     * 29    NCMDCNT_ =	COMMAND	COUNTER	USED TO	DETERMINE WHICH	TIME TAG TO USE	(0 OR 25 MS)		 *	1204
     * 30    NFTCUFLG_ = FLAG TO INDICATE IF TIME CODE UPDATE SEQUENCE SHOULD BE BUILT			 *	1205
     * 31    NFTTAG25_["031000]	= 25 MS	TIME TAG STARTING AT BIT 10 (LSB 1)				 *	1206
     * 32    ..THE FOLLOWING FIVE BUFFERS MUST BE STORED CONTIGUOUSLY IN MEMORY				 *	1207
     * 33    NINPBUF_(5,48) = ARRAY OF ALL INPUT BUFFERS FOR COMMANDS					 *	1208
     * 34    ..	DATA NDETBUF1_(48) = STORED COMMAND INPUT BUFFER FOR DETECTOR 1	MACRO CMDS		 *	1209
     * 35    ..	DATA NDETBUF2_(48) = STORED COMMAND INPUT BUFFER FOR DETECTOR 2	MACRO CMDS		 *	1210
     * 36    ..	DATA NDETBUF3_(48) = STORED COMMAND INPUT BUFFER FOR DETECTOR 3	MACRO CMDS		 *	1211
     * 37    ..	DATA NNICBUF_(48) = STORED COMMAND INPUT BUFFER	FOR INSTRUMENT OPS MACRO CMDS		 *	1212
     * 38    ..	DATA NREALBUF_(48) = REAL-TIME COMMAND INPUT BUFFER					 *	1213
     * 39    NLBUFWRD_[48] = LAST BUFFER WORD NUMBER							 *	1214
     * 40    NLINENUM_ = LINE NUMBER FOR COMMANDS							 *	1215
     * 41    NLODFLAG_ = FLAG INDICATING IF CURRENT BUFFER IS COMPLETELY LOADED				 *	1216
     * 42    NMSWOFST_ = NICMOS	NFMACRO	SKELETON STATUS	WORD OFFSET					 *	1217
     * 43    ..NEED THE	MACRO NUMBER FOR THE TIME CODE UPDATE						 *	1218
     * 44    NNEPMSK_["0600000]	= MASK FOR INDICATING NO ENTRY PRESENT					 *	1219
     *													 *	1220


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  14.001
01 JAN 95	MACRO COMMAND PROCESSOR


     NFMACRO  (PROCESSOR #22)	(continued)


     *													 *
     * 45    NRIUNUM_["0120] = RIU NUMBER IS 24	OCTAL SHIFTED LEFT 2 BITS				 *
     * 46    NSEQPT_ = POINTER INTO THE	NFMACRO	SKELETON						 *	1221
     * 47    NTIMEMAC_["010034]	= TIME CODE UPDATE MACRO ACTIVATE COMMAND (16 DATA BITS	OF THE COMMAND)	 *	1223
     *		     ASSUMING THIS IS AN OPERATE MACRO ONLY.						 *
     * 48    NUMCMDBF_[4] = NUMBER OF STORED COMMAND INPUT BUFFERS					 *	1224
     * 49    RTCSLEN_[438] = MAXIMUM LENGTH OF THE NFMACRO RTCS	BUFFER					 *	1225
     * 50    ENDDATA											 *	1226
     * 51    ..												 *	1227
     * 52    IF	INITIALIZATION IS REQUIRED								 *	1228
     * 53	 NFBUFILL_ = 0 ..RESET PARTIALLY FILLED	BUFFER FLAGS					 *	1229
     * 54	 ..SET ALL WORDS IN ALL	COMMAND	INPUT BUFFERS TO INDICATE NO ENTRY IS PRESENT		 *	1230
     * 55	 DO FOR	I_ = 0,	ALLBUFWD_ - 1								 *	1231
     * 56	     NINPBUF_(I_) = NNEPMSK_								 *	1232
     * 57	 ENDDO											 *	1233
     * 58	 ..SET THE NICMOS CLEAR	ALL QUEUES FLAG							 *	1234
     * 59	 ..SO THAT THE FIRST NFMACRO RTCS SINCE	INITIALIZATION WILL SEND			 *	1235
     * 60	 ..THE NICMOS CLEAR ALL	QUEUES MACRO							 *	1236
     * 61	 NCLRQFLG_ = 1										 *	1237
     * 62	 ..COMPUTE POINTER TO INDEX TABLE ENTRY	FOR NFMACRO AP RTCS				 *	1238
     * 63	 ..CONVERT UNIQUE SEQUENCE NUMBER TO COMMON POOL					 *	1239
     * 64	 ..SUBTRACT ONE	FROM THE SEQUENCE NUMBER						 *	1240
     * 65	 ..MULTIPLY BY SIZE OF INDEX TABLE ENTRY						 *	1241
     * 66	 ..ADD OFFSET FROM BEGINNING OF	ENTRY TO STATUS	WORD					 *	1242
     * 67	 NMSWOFST_ = ((SI2USEQT_(2) - 1) * INDXROW_) + 4					 *	1243
     * 68    ELSE ..INITIALIZATION IS NOT REQUIRED							 *	1244
     * 69	 ..RESET THE HIGH TEN BITS OF THE SPECIAL ENGINEERING DATA ITEM				 *	1245
     * 70	 NFSWMODE_ = IAND(NFSWMODE_, REPLYMSK_)							 *	1246
     * 71	 ..IF THE CONTROL SECTION SOFTWARE IS IN BOOT OR OPERATE MODE				 *	1247
     * 72	 IF ( (NFSWMODE_ .EQ. NOPRMODE_) .OR. (NFSWMODE_ .EQ. NBOTMODE_) )			 *	1248
     * 73	     NSEQPT_ = 0 ..SET SEQUENCE	POINTER	TO BEGINNING OF	SEQUENCE			 *	1249
     * 74	     ..											 *	1250
     * 75	     ..	HANDLE A TIME CODE UPDATE REQUEST FROM THE GROUND				 *	1251
     * 76	     ..											 *	1252
     * 77	     ..THE SCIENCE INSTITUTE MUST SCHEDULE A TIME CODE UPDATE REQUEST AT LEAST		 *	1253
     * 78	     ..10 MINOR	FRAMES BEFORE THE NEXT MAJOR FRAME AND MUTUALLY	EXCLUSIVE		 *	1254
     * 79	     ..TO ANY STORED COMMAND BUFFER ACTIVITY.						 *	1255
     * 80	     ..IF THERE	IS A TIME CODE UPDATE REQUEST						 *	1256
     * 81	     IF	(NFTCUFLG_ .NE.	0)								 *	1257
     * 82		 ..INCLUDE									 *	1258
  15 * 83		 NFTIMECU									 *	1259
     * 84	     ELSE ..THERE IS NO	TIME CODE UPDATE REQUEST					 *	1260
     * 85		 ..PROCESS THE COMMAND INPUT BUFFERS						 *	1261
     * 86		 NCMDCNT_ = 0 ..SET COMMAND COUNTER TO 0 SO FIRST COMMAND WILL HAVE 25 MS TIME	 *	1263
     *				 TAG									 *
     * 87		 NBUFFER_ = 0 ..START WITH THE FIRST STORED COMMAND BUFFER			 *	1264
     * 88		 ..POLL	EACH OF	THE STORED COMMAND INPUT BUFFERS				 *	1265
     * 89		 ..PROCESS THE INSTRUMENT OPS SPECIFIC COMMANDS	IF THERE IS ROOM IN THE	NFMACRO	 *	1268
     *				 RTCS. BY GROUND USAGE EXPECT THAT THIS	BUFFER MAY BE HELD OFF FOR ONE	 *
     *				 SECOND	AT THE MOST.							 *
     *													 *	1271


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  14.002
01 JAN 95	MACRO COMMAND PROCESSOR


     NFMACRO  (PROCESSOR #22)	(continued)


     *													 *
     * 90		 ..WHILE THERE IS ANOTHER BUFFER TO PROCESS AND	SUFFICIENT ROOM	TO PROCESS THIS	 *
     *				 BUFFER	(NSEQPT_ .LT. (TOTAL RTCS SEQUENCE LENGTH - (49	COMMANDS * 3	 *
     *				 WORDS EACH)) (49 COMMANDS = 48	COMMANDS FROM THE BUFFER PLUS 1	NOOP	 *
     *				 COMMAND)								 *
     * 91		 DO WHILE ((NBUFFER_ .LT. NUMCMDBF_) .AND. (NSEQPT_ .LT. (RTCSLEN_ - (49*3))) )	 *	1273
     * 92		     NLODFLAG_ = 0 ..RESET LOAD	FLAG TO	INDICATE BUFFER	NOT COMPLETELY LOADED	 *	1274
     * 93		     ..CHECK TO	SEE IF THE CURRENT STORED COMMAND BUFFER IS COMPLETELY LOADED	 *	1275
     * 94		     ..CALL									 *	1276
  16 * 95		     NFLOADED(NBUFFER_)								 *	1277
     * 96		     ..IF LOADING IS COMPLETE FOR CURRENT STORED COMMAND BUFFER			 *	1278
     * 97		     IF	(NLODFLAG_ .EQ.	1)							 *	1279
     * 98			 ..CHECK IF THE	NICMOS NFMACRO RTCS IS ACTIVE, NESTED OR INHIBITED	 *	1280
     * 99			 ..IF THE NICMOS UNIQUE	NFMACRO	AP RTCS	IS IN USE			 *	1281
     *100			 IF ( IAND(IXTABLE_(NMSWOFST_),	HIBACNST_) .NE.	0)			 *	1282
     *101			     ..POST ESB	MESSAGE	304 AND	SUSPEND: THE COMMANDS IN THE CURRENT	 *	1284
     *					     BUFFER WILL NOT BE	ISSUED					 *
     *102			     ..CALL								 *	1285
   6 *103			     NFACTION(304, 0, NMRTSASB_, NMAPNUM_)				 *	1286
     *104			 ELSE									 *	1287
     *105			     ..UNLOAD THE CURRENT STORED COMMAND BUFFER				 *	1288
     *106			     ..CALL								 *	1289
  17 *107			     NFUNLOAD(NBUFFER_)							 *	1290
     *108			 ENDIF ..BUFFER	LOADED							 *	1291
     *109		     ENDIF									 *	1292
     *110		     ..POINT TO	THE NEXT BUFFER							 *	1293
     *111		     NBUFFER_ =	NBUFFER_ + 1							 *	1294
     *112		 ENDDO										 *	1295
     *113		 ..IF IT IS OK TO SEND COMMANDS	FROM THE REAL-TIME BUFFER (NONE	OF THE STORED	 *	1297
     *				 COMMAND BUFFERS WERE COMPLETELY LOADED)				 *
     *114		 IF (NSEQPT_ .EQ. 0)								 *	1298
     *115		     ..PROCESS THE REAL-TIME COMMAND BUFFER					 *	1299
     *116		     ..CALL									 *	1300
  16 *117		     NFLOADED(NBUFFER_)								 *	1301
     *118		     ..IF LOADING IS COMPLETE FOR REAL-TIME COMMAND BUFFER			 *	1302
     *119		     IF	(NLODFLAG_ .EQ.	1)							 *	1303
     *120			 ..ONLY	PROCESS	THE REAL-TIME BUFFER IF	THE NFMACRO RTCS IS NOT	IN USE	 *	1304
     *121			 ..IF THE NICMOS UNIQUE	NFMACRO	AP RTCS	IS NOT IN USE			 *	1305
     *122			 IF ( IAND(IXTABLE_(NMSWOFST_),	HIBACNST_) .EQ.	0)			 *	1306
     *123			     ..UNLOAD REAL-TIME	COMMAND	BUFFER					 *	1307
     *124			     ..CALL								 *	1308
  17 *125			     NFUNLOAD(NBUFFER_)							 *	1309
     *126			 ELSE ..THE NFMACRO RTCS WAS NOT AVAILABLE				 *	1310
     *127			     ..THE CURRENT CHOICE FOR AN ACTION	IS DO NOTHING			 *	1311
     *128			     ..CALL								 *	1312
   6 *129			     NFACTION(306, 0, NMRTSARB_, NMAPNUM_)				 *	1313
     *130			 ENDIF ..REAL-TIME COMMAND BUFFER LOADED				 *	1314
     *131		     ENDIF									 *	1315
     *132		 ENDIF										 *	1316
     *133	     ENDIF										 *	1317
     *													 *	1318


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  14.003
01 JAN 95	MACRO COMMAND PROCESSOR


     NFMACRO  (PROCESSOR #22)	(continued)


     *													 *
     *134	     ..IF THE NFMACRO RTCS HAS COMMANDS	TO GO OUT AND SOFTWARE IS NOT SUSPENDED		 *
     *135	     IF	( (NSEQPT_ .GT.	0) .AND. (NSUSTATE_ .EQ. 0) )					 *	1319
     *136		 ..COPY	NOOP COMMAND WITH A 25 MILLISECOND TIME	TAG TO SEQUENCE			 *	1320
     *137		 NMACSKEL_(NSEQPT_) = NOOPCMD_(1)						 *	1321
     *138		 NMACSKEL_(NSEQPT_ + 1)	= NOOPCMD_(2)						 *	1322
     *139		 NMACSKEL_(NSEQPT_ + 2)	= NOOPCMD_(3)						 *	1323
     *140		 ..UPDATE RUNNING COUNT	OF TOTAL NUMBER	OF COMMANDS SENT FROM THE NFMACRO AP TO	 *	1325
     *				 THE INSTRUMENT	(OVERFLOW REGISTER WILL	NEED TO	BE RESET)		 *
     *141		 NMACCNT_ = MOD( (NMACCNT_ + NSEQPT_/3), 2**18)					 *	1326
     *142		 ..COPY	HIGH BYTE INTO NSSC-I MEMORY BUFFER FOR	REPORTING IN REGULAR TELEMETRY	 *	1328
     *				 (LOW BYTE WILL	BE THERE BY DEFAULT)					 *
     *143		 NMACCNTH_ = ISHFT(NMACCNT_,-8)	..COPY HIGH BYTE OF NFMACRO COMMAND COUNTER	 *	1330
     *144		 ..INCREASE THE	SEQUENCE POINTER BY THE	NUMBER OF WORDS	FOR 1 NOOP COMMAND	 *	1331
     *145		 NSEQPT_ = NSEQPT_ + 3								 *	1332
     *146		 .. PUT	LENGTH OF NICMOS NFMACRO SEQUENCE INTO INDEX TABLE			 *	1333
     *147		 ..CALL	..RELATIVE TIME	COMMAND	INDEX MAINTENANCE				 *	1334
  24 *148		 ZIDELT(2, NFNICMOS_, NSEQPT_, 3, NMAPNUM_, IRET_)				 *	1335
     *149		 ..IF THE RETURN CODE INDICATES	AN ERROR					 *	1336
     *150		 IF (IRET_ .NE.	0)								 *	1337
     *151		     ..POST ESB	302 WITH PARAMETER IRET_: THE RETURN CODE FROM THE NSSC-I	 *	1341
     *				     EXECUTIVE SERVICE TO MODIFY THE INDEX TABLE ENTRY FOR THE		 *
     *				     NICMOS-UNIQUE NFMACRO SEQUENCE DOES NOT INDICATE SUCCESS		 *
     *152		     ..CALL ..POST ESB AND SUSPEND THE INSTRUMENT				 *	1342
   6 *153		     NFACTION(302, IRET_, NIDXMAC_, NMAPNUM_)					 *	1343
     *154		 ELSE										 *	1344
     *155		     ..ACTIVATE	NICMOS NFMACRO SEQUENCE						 *	1345
     *156		     ..CALL									 *	1346
  27 *157		     ZIRTCC(2, 1, NFNICMOS_, NFNICMOS_,	IRET_, NMAPNUM_)			 *	1347
     *158		     ..IF THE RETURN CODE INDICATES AN ERROR					 *	1348
     *159		     IF	(IRET_ .NE. 0)								 *	1349
     *160			 ..POST	ESB 303	WITH PARAMETER IRET_: THE RETURN CODE FROM THE NSSC-I	 *	1352
     *					 EXECUTIVE SERVICE TO ACTIVATE THE NICMOS-UNIQUE NFMACRO	 *
     *					 SEQUENCE DOES NOT INDICATE SUCCESS				 *
     *161			 ..REQUEST SUSPEND SEQUENCE EXECUTION					 *	1353
     *162			 ..CALL	..REQUEST NSSC-1 FLIGHT	EXECUTIVE TO ACTIVATE THE NICMOS SUSPEND *	1355
     *					 SEQUENCE							 *
   6 *163			 NFACTION(303, IRET_, NMACRTSE_, NMAPNUM_)				 *	1356
     *164		     ENDIF									 *	1357
     *165		 ENDIF										 *	1358
     *166	     ENDIF										 *	1359
     *167	 ENDIF ..BOOT OR OPERATE MODE								 *	1360
     *168    ENDIF											 *	1361
     *169    RETURN											 *	1362
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  15
01 JAN 95	MACRO COMMAND PROCESSOR


     NFTIMECU

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = NFTIMECU									 *	1364
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	1365
     *	3    ..ENGLISH NAME = TIME CODE	UPDATE								 *	1366
     *	4    ..LANGUAGE	= CFG PDL									 *	1367
     *	5    ..PURPOSE = CREATE	THE TIME CODE UPDATE COMMANDS FOR THE NFMACRO RTCS			 *	1368
     *	6    ..NOTES = THE TIME	CODE UPDATE MACRO COMMAND IS A NORMAL MACRO ACTIVATE COMMAND WITH TWO	 *	1375
     *		     PARAMETERS. THE 1ST PARAMETER IS THE HIGH 16 BITS OF THE SPACECRAFT CLOCK AND THE	 *
     *		     2ND PARAMETER IS THE LOW 16 BITS OF THE SPACECRAFT	CLOCK. EACH PARAMETER IS A DATA	 *
     *		     LOAD COMMAND. THE RTCS IS CONSTRUCTED BY FIRST SENDING THE	TWO DATA LOAD COMMANDS	 *
     *		     FOLLOWED BY THE NORMAL MACRO ACTIVATE COMMAND FOR THE TIME	CODE UPDATE MACRO, EACH	 *
     *		     COMMAND WILL HAVE A 25 MS TIME TAG.						 *
     *	7    ..CALLING SEQUENCE	= INCLUDE NFTIMECU							 *	1376
     *	8    ..GLOBAL INPUTS = HIBACNST_, NFTIMEHI_, NFTIMELO_,	NFTIMEHH_, NFTIMEML_, NLINETAB_,	 *	1379
     *		     NMACSKEL_,	NMRTSATU_, SI2USEQT_, SSMTIMEL_, SSMTIMEH_				 *
     *	9    ..GLOBAL OUTPUTS =	NMACSKEL_								 *	1380
     * 10    ..SUBRS CALLED = NONE									 *	1381
     * 11    ..--------------------------------------------------------------------			 *	1382
     * 12    ..IF THE NICMOS UNIQUE NFMACRO AP RTCS IS NOT IN USE					 *	1383
     * 13    IF	( IAND(IXTABLE_(NMSWOFST_), HIBACNST_) .EQ. 0)						 *	1384
     * 14	 ..CLEAR TIME CODE UPDATE REQUEST							 *	1385
     * 15	 NFTCUFLG_ = 0										 *	1386
     * 16	 ..ALWAYS SEND THE NICMOS CLEAR	ALL QUEUES MACRO BEFORE	THE				 *	1387
     * 17	 ..TIME	CODE UPDATE MACRO								 *	1388
     * 18	 ..MAKE	THE THIRD WORD OF THE CLEAR ALL	QUEUES MACRO AN	OPERATE	MACRO			 *	1389
     * 19	 NCLRCMD_(3) = NCLROPER_								 *	1390
     * 20	 ..WRITE THE NICMOS CLEAR ALL QUEUES SERIAL MAGNITUDE COMMAND WITH A 25	MS TIMETAG INTO	 *	1393
     *			 THE FIRST LOCATION IN THE NICMOS-UNIQUE NFMACRO AP RTCS.			 *
     * 21	 NMACSKEL_(NSEQPT_) = NCLRCMD_(1)							 *	1394
     * 22	 NMACSKEL_(NSEQPT_ + 1)	= NCLRCMD_(2)							 *	1395
     * 23	 NMACSKEL_(NSEQPT_ + 2)	= NCLRCMD_(3)							 *	1396
     * 24	 ..INCREASE THE	SEQUENCE POINTER BY THE	NUMBER OF WORDS	FOR 1 COMMAND			 *	1397
     * 25	 NSEQPT_ = NSEQPT_ + 3									 *	1398
     * 26	 ..PROCESS A TIME CODE UPDATE REQUEST FROM THE GROUND					 *	1399
     * 27	 ..COMPUTE SPACECRAFT TIME AT START OF NEXT MAJOR FRAME					 *	1400
     * 28	 ..TIME	AT NEXT	MAJOR FRAME = TIME AT LAST MAJOR FRAME + 60 SECONDS			 *	1401
     * 29	 ..COMPUTE LOW 16 BITS FIRST								 *	1402
     * 30	 NFTIMELO_ = SSMTIMEL_ + 60000/125 .. 60000 MS (LSB = 125 MS)				 *	1403
     * 31	 ..SAVE	MIDDLE LOW BYTE	OF 32 BIT SPACECRAFT CLOCK SENT	IN TIME	CODE UPDATE FOR		 *	1405
     *			 REPORTING IN ENGINEERING DATA							 *
     * 32	 NFTIMEML_ = ISHFT(NFTIMELO_, -8)							 *	1406
     * 33	 ..CHECK FOR A CLOCK ROLL OVER INTO THE	HIGH 16	BITS					 *	1407
     * 34	 ..IF BIT 17 OF	NFTIMELO_ IS SET							 *	1408
     * 35	 IF ( IAND(NFTIMELO_, "0200000)	.NE. 0)							 *	1409
     * 36	     ..ADD 1 TO	HIGH 16	BITS FOR CLOCK ROLL OVER					 *	1410
     * 37	     NFTIMEHI_ = SSMTIMEH_ + 1								 *	1411
     * 38	 ELSE ..NO CLOCK ROLL OVER USE TIME AS REPORTED	IN THE PIT				 *	1412
     * 39	     NFTIMEHI_ = SSMTIMEH_								 *	1413
     * 40	 ENDIF											 *	1414
     *													 *	1416


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  15.001
01 JAN 95	MACRO COMMAND PROCESSOR


     NFTIMECU	(continued)


     *													 *
     * 41	 ..SAVE	HIGH BYTE OF 32	BIT SPACECRAFT CLOCK SENT IN TIME CODE UPDATE FOR REPORTING IN	 *
     *			 ENGINEERING DATA								 *
     * 42	 NFTIMEHH_ = ISHFT(NFTIMEHI_, -8)							 *	1417
     * 43	 ..CREATE MACRO	RTCS CONTAINING	TIME CODE UPDATE MACRO					 *	1418
     * 44	 ..CREATE A DATA LOAD COMMAND WITH LOW 16 BITS OF SPACECRAFT TIME,			 *	1419
     * 45	 ..A DATA LOAD COMMAND WITH HIGH 16 BITS OF SPACECRAFT TIME, AND			 *	1420
     * 46	 ..A NORMAL MACRO ACTIVATE COMMAND FOR TIME CODE UPDATE	MACRO				 *	1421
     * 47	 ..FOR EACH OF THE THREE COMMANDS ABOVE	CONSTRUCT THE COMMAND BITS			 *	1422
     * 48	 DO FOR	I_= 0, 2									 *	1423
     * 49	     ..COPY (CONTROL BITS, HI-ORDER TIME CODE BITS)					 *	1424
     * 50	     NMACSKEL_(NSEQPT_)	= "040000							 *	1425
     * 51	     ..											 *	1426
     * 52	     ..IF THE COMMAND IS A DATA	LOAD COMMAND						 *	1427
     * 53	     IF	(I_ .LT. 2)									 *	1428
     * 54		 ..LOOKUP LINE NUMBER IN TABLE FOR A DATA LOAD COMMAND				 *	1429
     * 55		 NLINENUM_ = NLINETAB_(0) ..DATA LOAD COMMAND LINE NUMBER			 *	1430
     * 56	     ELSE ..THE	COMMAND	IS A NORMAL MACRO ACTIVATE COMMAND				 *	1431
     * 57		 ..LOOKUP LINE NUMBER IN TABLE FOR A NORMAL MACRO ACTIVATE COMMAND		 *	1432
     * 58		 NLINENUM_ = NLINETAB_(1) ..NORMAL MACRO ACTIVATE COMMAND LINE NUMBER		 *	1433
     * 59	     ENDIF										 *	1434
     * 60	     ..											 *	1435
     * 61	     ..COPY (HI-ORDER COMMAND BITS)							 *	1436
     * 62	     ..H-O BITS: 9 8 7 6 5 4 3 2 1							 *	1437
     * 63	     ..CONTENTS: 0 0 R R R R R L L							 *	1438
     * 64	     ..R = RIU NUMBER, L = LINE	NUMBER (2 HIGH BITS)					 *	1439
     * 65	     NMACSKEL_(NSEQPT_ + 1) = IOR(NRIUNUM_, ISHFT(NLINENUM_,-1))			 *	1440
     * 66	     ..											 *	1441
     * 67	     ..COPY (LO-ORDER COMMAND BITS)							 *	1442
     * 68	     ..L-O BITS: 1 1 1 1 1 1 1 1 1							 *	1443
     * 69	     ..L-O BITS: 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1					 *	1444
     * 70	     ..CONTENTS: L D D D D D D D D D D D D D D D D P					 *	1445
     * 71	     ..L = LINE	NUMBER (LOW BIT), D = DATA BITS, P = ODD PARITY	(27 BITS)		 *	1446
     * 72	     IF	( I_ .EQ. 0) ..COPY HIGH ORDER SPACECRAFT TIME TO COMMAND			 *	1447
     * 73		 NMACSKEL_(NSEQPT_ + 2)	= IOR(ISHFT(NLINENUM_, 17), ISHFT(IAND(NFTIMEHI_,	 *	1449
     *				 "0177777), 1))								 *
     * 74	     ELSEIF (I_	.EQ. 1)	.. COPY	LOW ORDER SPACECRAFT TIME TO COMMAND			 *	1450
     * 75		 NMACSKEL_(NSEQPT_ + 2)	= IOR(ISHFT(NLINENUM_, 17), ISHFT(IAND(NFTIMELO_,	 *	1452
     *				 "0177777), 1))								 *
     * 76	     ELSE ..COPY TIME CODE UPDATE MACRO	COMMAND						 *	1453
     * 77		 NMACSKEL_(NSEQPT_ + 2)	= IOR(ISHFT(NLINENUM_, 17),NTIMEMAC_)			 *	1454
     * 78	     ENDIF										 *	1455
     * 79	     ..											 *	1456
     * 80	     ..GENERATE	THE PARITY BIT ON THE 27 COMMAND BITS					 *	1457
     * 81	     TEMP_ = ADDRESS OF	NMACSKEL(NSEQPT_ + 1)						 *	1458
     * 82	     ..CALL										 *	1459
   7 * 83	     NFPARITY(TEMP_)									 *	1460
     * 84	     ..											 *	1461
     * 85	     ..COPY (LO-ORDER TIME CODE	BITS)							 *	1462
     * 86	     NMACSKEL_(NSEQPT_ + 1)= IOR(NFTTAG25_, NMACSKEL_(NSEQPT_ +	1))			 *	1463
     *													 *	1464


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  15.002
01 JAN 95	MACRO COMMAND PROCESSOR


     NFTIMECU	(continued)


     *													 *
     * 87	     ..INCREASE	SEQUENCE POINTER TO ACCOUNT FOR	A 27 BIT COMMAND			 *
     * 88	     NSEQPT_ = NSEQPT_ + 3								 *	1465
     * 89	 ENDDO											 *	1466
     * 90    ELSE ..THE	NFMACRO	RTCS IS	CURRENTLY IN USE AND THE NEXT SCHEDULED	EXECUTION OF NFMACRO	 *	1468
     *		     WILL RETRY	THE TIME CODE UPDATE							 *
     * 91	 ..CALL											 *	1469
   6 * 92	 NFACTION(307, 0, NMRTSATU_, NMAPNUM_)							 *	1470
     * 93    ENDIF ..CHECK FOR NFMACRO RTCS IN USE							 *	1471
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  16
01 JAN 95	MACRO COMMAND PROCESSOR


     NFLOADED (NBUFFNUM)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..SUBROUTINE NAME = NFLOADED								 *	1473
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	1474
     *	3    ..ENGLISH NAME = LOADED BUFFER								 *	1475
     *	4    ..LANGUAGE	= CFG PDL									 *	1476
     *	5    ..PURPOSE = CHECK TO SEE IF A BUFFER IS COMPLETELY	LOADED					 *	1477
     *	6    ..NOTES = COMPLETELY LOADED IMPLIES THAT AN IMMEDIATE MACRO ACTIVATE COMMAND WAS FOUND OR A *	1480
     *		     NORMAL MACRO ACTIVATE WAS FOUND PRECEDED BY 0 TO 47 DATA LOAD COMMANDS.		 *
     *	7    ..CALLING SEQUENCE	= CALL NFLOADED	(NBUFFNUM)						 *	1481
     *	8    ..GLOBAL INPUTS = NBADIMED_, NBADLWD_, NBUFFNUM_, NINPBUF_, NLODFLAG_, NLBUFWRD_, NNEPMSK_, *	1483
     *		     NSUSTATE_										 *
     *	9    ..GLOBAL OUTPUTS =	NFBUFILL_, NLODFLAG_							 *	1484
     * 10    ..SUBRS CALLED = NFACTION									 *	1485
     * 11    ..----------------------------------------------------------------------			 *	1486
     * 12    DATA GLOBAL (FORMAL PARAMETERS)								 *	1487
     * 13    NBUFFNUM_ = THE BUFFER NUMBER								 *	1488
     * 14    ENDDATA											 *	1489
     * 15    DATA LOCAL											 *	1490
     * 16    NDLCDMSK_[0] = MASK FOR RECOGNIZING DATA LOAD COMMAND					 *	1491
     * 17    NMACDMSK_["0200000] = MASK	FOR RECOGNIZING	NORMAL MACRO ACTIVATE COMMAND			 *	1492
     * 18    TEMP_ = TEMPORARY VARIABLE									 *	1493
     * 19    ENDDATA											 *	1494
     * 20    ..												 *	1495
     * 21    ..POLL COMMAND INPUT BUFFER								 *	1496
     * 22    ..START WITH THE FIRST BUFFER WORD								 *	1497
     * 23    NBUFWORD_ = 0										 *	1498
     * 24    ..CHECK ALL WORDS UNTIL A MACRO ACTIVATE COMMAND IS FOUND OR END OF BUFFER	AND THE	SOFTWARE *	1500
     *		     HAS NOT BEEN SUSPENDED								 *
     * 25    DO	WHILE (	(NBUFWORD_ .LT.	NLBUFWRD_) .AND. (NLODFLAG_ .EQ. 0) .AND. (NSUSTATE_ .EQ. 0) )	 *	1502
     * 26	 ..IF THERE IS A VALID ENTRY PRESENT (THE TWO HIGH BITS	ARE NOT	BOTH SET)		 *	1503
     * 27	 IF ( IAND(NINPBUF_(NBUFFNUM_, NBUFWORD_), NNEPMSK_ ) .NE. NNEPMSK_ )			 *	1504
     * 28	     ..IF THE BUFFER WORD IS A DATA LOAD WORD						 *	1505
     * 29	     IF	( IAND(NINPBUF_(NBUFFNUM_, NBUFWORD_), NNEPMSK_) .EQ. NDLCDMSK_)		 *	1506
     * 30		 ..A DATA LOAD WORD SHOULD NOT BE THE LAST WORD	IN THE BUFFER			 *	1507
     * 31		 ..IF THIS IS THE LAST WORD IN THE BUFFER					 *	1508
     * 32		 IF (NBUFWORD_ .EQ. (NLBUFWRD_-1))						 *	1509
     * 33		     ..POST ESB	MESSAGE	301							 *	1510
     * 34		     ..CALL ..POST ESB AND SUSPEND THE INSTRUMENT				 *	1511
   6 * 35		     NFACTION(301, NBUFFNUM_, NBADLWD_,	NMAPNUM_)				 *	1512
     * 36		 ENDIF										 *	1513
     * 37	     ELSE ..IF THE BUFFER WORD IS A NORMAL MACRO ACTIVATE COMMAND			 *	1514
     * 38		 IF ( IAND(NINPBUF_(NBUFFNUM_, NBUFWORD_), NNEPMSK_) .EQ. NMACDMSK_ )		 *	1515
     * 39		     ..THE BUFFER IS COMPLETELY	LOADED						 *	1516
     * 40		     NLODFLAG_ = 1								 *	1517
     * 41		 ELSE ..BUFFER WORD IS AN IMMEDIATE MACRO ACTIVATE COMMAND			 *	1518
     * 42		     ..IF THIS IS THE FIRST WORD IN THE	BUFFER					 *	1519
     * 43		     IF	(NBUFWORD_ .EQ.	0)							 *	1520
     * 44			 ..THE BUFFER IS COMPLETELY LOADED					 *	1521
     * 45			 NLODFLAG_ = 1								 *	1522
     *													 *	1523


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  16.001
01 JAN 95	MACRO COMMAND PROCESSOR


     NFLOADED (NBUFFNUM)   (continued)


     *													 *
     * 46		     ELSE ..IMMEDIATE COMMAND NOT IN THE FIRST LOCATION	OF THE BUFFER		 *
     * 47			 ..POST	ESB MESSAGE 300	WITH THE PARAMETER INDICATING THE		 *	1524
     * 48			 LOCATION IN THE BUFFER	THAT HAD THE IMMEDIATE COMMAND			 *	1525
     * 49			 TEMP_ = IOR(ISHFT(NBUFFNUM_, 6), NBUFWORD_)				 *	1526
     * 50			 ..CALL	..POST ESB AND SUSPEND THE INSTRUMENT				 *	1527
   6 * 51			 NFACTION(300, TEMP_, NBADIMED_, NMAPNUM_)				 *	1528
     * 52		     ENDIF									 *	1529
     * 53		 ENDIF										 *	1530
     * 54	     ENDIF										 *	1531
     * 55	 ELSE ..THERE IS NO ENTRY PRESENT							 *	1532
     * 56	     ..EXIT SEARCHING THIS BUFFER							 *	1533
     * 57	     UNDO										 *	1534
     * 58	 ENDIF											 *	1535
     * 59	 NBUFWORD_ = NBUFWORD_ + 1								 *	1536
     * 60    ENDDO											 *	1537
     * 61    ..IF A BUFFER IS PARTIALLY	OR COMPLETELY LOADED						 *	1538
     * 62    IF	(NBUFWORD_ .GT.	0)									 *	1539
     * 63	 ..SET A FLAG TO INDICATE THAT A BUFFER	IS PARTIALLY LOADED BY SETTING THE BIT IN THE	 *	1542
     *			 NFBUFILL_ WORD	CORRESPONDING TO THE CURRENT BUFFER NUMBER			 *
     * 64	 NFBUFILL_ = IOR(ISHFT(1,NBUFFNUM_), NFBUFILL_)						 *	1543
     * 65    ENDIF											 *	1544
     * 66    RETURN											 *	1545
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  17
01 JAN 95	MACRO COMMAND PROCESSOR


     NFUNLOAD (NBUFFNUM)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..SUBROUTINE NAME = NFUNLOAD								 *	1547
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	1548
     *	3    ..ENGLISH NAME = UNLOAD BUFFER								 *	1549
     *	4    ..LANGUAGE	= CFG PDL									 *	1550
     *	5    ..PURPOSE = UNLOAD	A BUFFER AND BUILD THE NFMACRO UNIQUE RTCS				 *	1551
     *	6    ..NOTES = NONE										 *	1552
     *	7    ..CALLING SEQUENCE	= CALL NFUNLOAD	(NBUFFNUM)						 *	1553
     *	8    ..GLOBAL INPUTS = NBOTMODE_, NBUFFNUM_, NCLRBOOT_,	NCLRCMD_, NCLRQFLG_, NCLROPER_,		 *	1556
     *		     NCMDCNT_, NFSWMODE_, NINPBUF_, NINVDENT_, NLBUFWRD_, NLINETAB_, NNEPMSK_		 *
     *	9    ..GLOBAL OUTPUTS =	NCLRQFLG_, NCMDCNT_, NCLRCMD_, NFBUFILL_, NINPBUF_, NMACSKEL_		 *	1557
     * 10    ..SUBRS CALLED = NONE									 *	1558
     * 11    ..----------------------------------------------------------------------			 *	1559
     * 12    DATA GLOBAL (FORMAL PARAMETERS)								 *	1560
     * 13    NBUFFNUM_ = THE BUFFER NUMBER								 *	1561
     * 14    ENDDATA											 *	1562
     * 15    DATA LOCAL											 *	1563
     * 16    NCMDCTMX_[5] = NUMBER OF COMMANDS TO GO OUT EACH 25 MS CYCLE				 *	1564
     * 17    NFTTAG0_[0] = 0 MS	TIME TAG STARTING AT BIT 10 (LSB 1)					 *	1565
     * 18    NWORD_ = LOOP COUNTER TO GO THROUGH EACH WORD IN A	BUFFER					 *	1566
     * 19    TEMP_ = TEMPORARY VARIABLE									 *	1567
     * 20    ENDDATA											 *	1568
     * 21    ..CLEAR THE FLAG INDICATING THAT A	BUFFER IS PARTIALLY/COMPLETELY LOADED BY CLEARING THE	 *	1571
     *		     BIT IN THE	NFBUFILL_ WORD CORRESPONDING TO	THE CURRENT BUFFER NUMBER ( .NOT. IS A	 *
     *		     BITWIZE COMPLEMENT	)								 *
     * 22    NFBUFILL_ = IAND(.NOT.(ISHFT(1,NBUFFNUM_)),NFBUFILL_)					 *	1572
     * 23    ..TO SAFEGUARD AGAINST THE	POSSIBILITY THAT AN ABORTED REAL-TIME COMMANDING		 *	1573
     * 24    ..ATTEMPT MAY LEAVE EXTRANEOUS DATA LOAD WORDS IN THE NICMOS DATA LOAD CHANNEL,		 *	1574
     * 25    ..IN THE PATH OF UPCOMING STORED COMMANDING, REAL-TIME COMMANDING SHOULD LOAD		 *	1575
     * 26    ..THE NICMOS CLEAR	ALL QUEUES FLAG	WITH A NONZERO VALUE. BEFORE THE			 *	1576
     * 27    ..FIRST STORED COMMAND BUFFER IS UNLOADED DURING AN EXECUTION OF THIS AP			 *	1577
     * 28    ..THE NICMOS CLEAR	ALL QUEUES FLAG	SHOULD BE CHECKED					 *	1578
     * 29    ..IF THIS IS THE FIRST STORED COMMAND BUFFER BEING	USED TO	CREATE THE NFMACRO RTCS	DURING	 *	1580
     *		     THIS EXECUTION OF THIS AP								 *
     * 30    IF	(NSEQPT_ .EQ. 0)									 *	1581
     * 31	 ..IF THIS IS A	STORED COMMAND BUFFER							 *	1582
     * 32	 IF (NBUFFNUM_ .LT. 4)									 *	1583
     * 33	     ..INTERROGATE THE NICMOS CLEAR ALL	QUEUES FLAG					 *	1584
     * 34	     ..IF THE CLEAR ALL	QUEUES MACRO COMMAND SHOULD BE SENT				 *	1585
     * 35	     IF	(NCLRQFLG_ .NE.	0)								 *	1586
     * 36		 ..DETERMINE WHETHER THIS SHOULD BE A BOOT MACRO OR AN OPERATE MACRO		 *	1587
     * 37		 ..IF THE SOFTWARE MODE	IN SPECIAL ED SHOWS BOOT MODE				 *	1588
     * 38		 IF (NFSWMODE_ .EQ. NBOTMODE_)							 *	1589
     * 39		     ..COPY THE	BOOT VERSION OF	THE MACRO TO WORD THREE	OF NCLRCMD_		 *	1590
     * 40		     NCLRCMD_(3) = NCLRBOOT_							 *	1591
     * 41		 ELSE ..SPECIAL	ED INDICATES OPERATE MODE					 *	1592
     * 42		     ..COPY THE	OPERATE	VERSION	OF THE MACRO TO	WORD THREE OF NCLRCMD_		 *	1593
     * 43		     NCLRCMD_(3) = NCLROPER_							 *	1594
     * 44		 ENDIF										 *	1595
     *													 *	1598


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  17.001
01 JAN 95	MACRO COMMAND PROCESSOR


     NFUNLOAD (NBUFFNUM)   (continued)


     *													 *
     * 45		 ..WRITE THE NICMOS CLEAR ALL QUEUES SERIAL MAGNITUDE COMMAND WITH A 25	MS	 *
     *				 TIMETAG INTO THE FIRST	LOCATION IN THE	NICMOS-UNIQUE NFMACRO AP RTCS.	 *
     * 46		 NMACSKEL_(NSEQPT_) = NCLRCMD_(1)						 *	1599
     * 47		 NMACSKEL_(NSEQPT_ + 1)	= NCLRCMD_(2)						 *	1600
     * 48		 NMACSKEL_(NSEQPT_ + 2)	= NCLRCMD_(3)						 *	1601
     * 49		 ..INCREASE THE	SEQUENCE POINTER BY THE	NUMBER OF WORDS	FOR 1 COMMAND		 *	1602
     * 50		 NSEQPT_ = NSEQPT_ + 3								 *	1603
     * 51		 ..ZERO	THE NICMOS CLEAR ALL QUEUES FLAG					 *	1604
     * 52		 NCLRQFLG_ = 0									 *	1605
     * 53	     ENDIF										 *	1606
     * 54	 ENDIF											 *	1607
     * 55    ENDIF											 *	1608
     * 56    ..BUILD THE STORED	COMMANDS INTO THE NICMOS NFMACRO SKELETON				 *	1609
     * 57    DO	FOR NWORD_ = 0,	NBUFWORD_ - 1 ..FOR EACH COMMAND TO BE UNLOADED				 *	1610
     * 58	 ..BUILD COMMAND									 *	1611
     * 59	 ..LOOKUP LINE NUMBER IN TABLE								 *	1612
     * 60	 NLINENUM_ = NLINETAB_(ISHFT(NINPBUF_(NBUFFNUM_, NWORD_), -16))				 *	1613
     * 61	 ..											 *	1614
     * 62	 ..COPY	(CONTROL BITS, HI-ORDER	TIME CODE BITS)						 *	1615
     * 63	 NMACSKEL_(NSEQPT_) = "040000								 *	1616
     * 64	 ..											 *	1617
     * 65	 ..COPY	(HI-ORDER COMMAND BITS)								 *	1618
     * 66	 ..H-O BITS: 9 8 7 6 5 4 3 2 1								 *	1619
     * 67	 ..CONTENTS: 0 0 R R R R R L L								 *	1620
     * 68	 ..R = RIU NUMBER, L = LINE NUMBER (2 HIGH BITS)					 *	1621
     * 69	 NMACSKEL_(NSEQPT_ + 1)	= IOR(NRIUNUM_,	ISHFT(NLINENUM_,-1))				 *	1622
     * 70	 ..											 *	1623
     * 71	 ..COPY	(LO-ORDER COMMAND BITS)								 *	1624
     * 72	 ..L-O BITS: 1 1 1 1 1 1 1 1 1								 *	1625
     * 73	 ..L-O BITS: 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1					 *	1626
     * 74	 ..CONTENTS: L D D D D D D D D D D D D D D D D P					 *	1627
     * 75	 ..L = LINE NUMBER (LOW	BIT), D	= DATA BITS, P = ODD PARITY (27	BITS)			 *	1628
     * 76	 NMACSKEL_(NSEQPT_ + 2)	= IOR(ISHFT(NLINENUM_, 17), ISHFT(IAND(NINPBUF_(NBUFFNUM_,	 *	1630
     *			 NWORD_), "0177777), 1))							 *
     * 77	 ..											 *	1631
     * 78	 ..GENERATE THE	PARITY BIT ON THE 27 COMMAND BITS					 *	1632
     * 79	 TEMP_ = ADDRESS OF NMACSKEL(NSEQPT_ + 1)						 *	1633
     * 80	 ..CALL											 *	1634
   7 * 81	 NFPARITY(TEMP_)									 *	1635
     * 82	 ..											 *	1636
     * 83	 ..IN ORDER TO GUARANTEE THAT THE NFMACRO UNIQUE SEQUENCE EXECUTES WITHIN ONE SECOND,	 *	1640
     *			 THE FIRST COMMAND OF A	GROUP WILL HAVE	A 25 MS	TIME TAG, THE REST OF THE GROUP	 *
     *			 WILL HAVE A ZERO TIME TAG. THE	SIZE OF	THE GROUP IS DETERMINED	BY THE VALUE OF	 *
     *			 NCMDCTMX_.									 *
     * 84	 ..TEST	FOR 25 MS TIME TAG OR ZERO TIME	TAG						 *	1641
     * 85	 ..IF THE COMMAND COUNT	IS ZERO								 *	1642
     * 86	 IF ( NCMDCNT_ .EQ. 0)									 *	1643
     * 87	     ..USE THE 25 MS TIME TAG								 *	1644
     * 88	     ..COPY (LO-ORDER TIME CODE	BITS)							 *	1645
     *													 *	1646


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  17.002
01 JAN 95	MACRO COMMAND PROCESSOR


     NFUNLOAD (NBUFFNUM)   (continued)


     *													 *
     * 89	     NMACSKEL_(NSEQPT_ + 1)= IOR(NFTTAG25_, NMACSKEL_(NSEQPT_ +	1))			 *
     * 90	 ELSE ..USE THE	ZERO TIME TAG								 *	1647
     * 91	     ..COPY (LO-ORDER TIME CODE	BITS)							 *	1648
     * 92	     NMACSKEL_(NSEQPT_ + 1)= IOR(NFTTAG0_, NMACSKEL_(NSEQPT_ + 1))			 *	1649
     * 93	 ENDIF											 *	1650
     * 94	 ..											 *	1651
     * 95	 ..INCREMENT COMMAND COUNTER FOR 25 MS TIME TAG	OR ZERO	TIME TAG			 *	1652
     * 96	 NCMDCNT_ = NCMDCNT_ + 1								 *	1653
     * 97	 ..IF THE COMMAND COUNT	IS GREATER THAN	THE COMMAND MAXIMUM (GROUP SIZE)		 *	1654
     * 98	 IF (NCMDCNT_ .GE. NCMDCTMX_)								 *	1655
     * 99	     ..RESET THE COMMAND COUNT SO NEXT COMMAND WILL HAVE A 25 MS TIME TAG		 *	1656
     *100	     NCMDCNT_ =	0									 *	1657
     *101	 ENDIF											 *	1658
     *102	 ..											 *	1659
     *103	 ..INCREASE THE	SEQUENCE POINTER TO ACCOUNT FOR	ONE 27 BIT COMMAND			 *	1660
     *104	 NSEQPT_ = NSEQPT_ + 3									 *	1661
     *105	 ..SET CURRENT WORD IN THIS BUFFER TO NO ENTRY PRESENT					 *	1662
     *106	 NINPBUF_(NBUFFNUM_, NWORD_) = NNEPMSK_							 *	1663
     *107    ENDDO											 *	1664
     *108    ..CHECK THE UNUSED	ENTRIES	OF AN INPUT BUFFER FOR ENTRIES OTHER THAN NO ENTRY		 *	1665
     *109    ..PRESENT											 *	1666
     *110    DO	FOR NWORD_ = NBUFWORD_,	NLBUFWRD_ - 1 ..FOR THE	REST OF	THE BUFFER			 *	1667
     *111	 ..IF CURRENT WORD IS OTHER THAN NO ENTRY PRESENT					 *	1668
     *112	 IF ( IAND(NINPBUF_(NBUFFNUM_, NWORD_),NNEPMSK_) .NE. NNEPMSK_)				 *	1669
     *113	     ..INDICATE	BUFFER NUMBER AND BUFFER WORD IN ESB PARAMETER				 *	1670
     *114	     TEMP_ = IOR(ISHFT(NBUFFNUM_, 6), NWORD_)						 *	1671
     *115	     ..CALL ..POST ESB 305 AND SUSPEND THE INSTRUMENT					 *	1672
   6 *116	     NFACTION(305, TEMP_, NINVDENT_, NMAPNUM_)						 *	1673
     *117	     UNDO										 *	1674
     *118	 ENDIF											 *	1675
     *119    ENDDO											 *	1676
     *120    RETURN											 *	1677
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  18
01 JAN 95

























					   ********************
					   *		      *
					   * SAFING PROCESSOR *
					   *		      *
					   ********************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  19
01 JAN 95	SAFING PROCESSOR


     NFSAFING  (PROCESSOR #23)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..PROCESSOR NAME =	NFSAFING ******** APPLICATION PROCESSOR	NUMBER 23 ********		 *	1680
     *	2    ..IDENTIFICATION =	NICMOS FLIGHT S/W							 *	1681
     *	3    ..ENGLISH NAME = SAFING									 *	1682
     *	4    ..LANGUAGE	= CFG PDL									 *	1683
     *	5    ..PURPOSE = MONITOR CRITICAL ED FROM INSTRUMENT VIA FLAGS SET BY FLIGHT EXECUTIVE,	REQUEST	 *	1686
     *		     ACTIVATION	OF THE NICMOS SAFING SEQUENCE WHEN NECESSARY.				 *
     *	6    ..NOTES = THIS PROCESSOR DETECTS ED OUT-OF-LIMITS CONDITIONS VIA FLAGS SET	BY THE FLIGHT	 *	1696
     *		     EXECUTIVE,	FOR NICMOS ED ITEMS IN ONE OF THREE EXECUTIVE LIMIT CHECK TABLES. THIS	 *
     *		     PROCESSOR MAINTAINS COUNTS	OF THE NUMBER OF CONSECUTIVE OUT-OF-LIMITS REPORTS FOR	 *
     *		     EACH ED ITEM IN THE CURRENT EXECUTIVE LIMIT CHECK TABLE. THE ACTIVATION OF	THE	 *
     *		     NICMOS SAFING SEQUENCE IS REQUESTED WHEN ANY OF THESE CONSECUTIVE OUT-OF-LIMITS	 *
     *		     COUNTS EXCEEDS A SPECIFIED	MAXIMUM	VALUE, OR WHEN THE FLIGHT EXECUTIVE REFUSES TO	 *
     *		     CHOOSE A LIMIT-CHECK TABLE. THE APPROPRIATE LIMIT-CHECK TABLE (1 OF 3) IS CHOSEN	 *
     *		     DEPENDING ON THE INSTRUMENT MODE OF THE NICMOS: HOLD, OPER1, OR OPER2, AS REFLECTED *
     *		     IN	THE NICMOS BILEVEL ED ITEMS NOPERON1 AND NOPERON2.				 *
     *	7    ..CALLING SEQUENCE	= SYNCHRONOUS, ONCE EVERY MINUTE, WITH INITIALIZATION AT THE INITIAL	 *	1698
     *		     ENABLING FOR EXECUTION.								 *
     *	8    ..GLOBAL INPUTS = NCVT_, NDREF_, NFNICMOS_, NLFLGS_, NSAPNUM_				 *	1699
     *	9    ..GLOBAL OUTPUTS =	NONE									 *	1700
     * 10    ..SUBRS CALLED = ZILIM, ZISAFE, ZISTAT							 *	1701
     * 11    ..---------------------------------------------------------------------------		 *	1702
     * 12    ..												 *	1703
     * 13    DATA LOCAL											 *	1704
     * 14    BADE_ (32)	= THE NUMBER OF	CONSECUTIVE BAD	(I.E.. OUT-OF-LIMITS) REPORTS FOR EACH ITEM IN	 *	1706
     *		     THE CURRENT EXECUTIVE LIMIT-CHECK TABLE						 *
     * 15    FLAGNUM_ =	NUMBER OF THE FLAG BEING CHECKED (1-32)						 *	1707
     * 16    FLAGWD_ = LOCAL FLAG WORD (32-BIT QUANTITY)						 *	1708
     * 17    IRET_ = RETURN CODE FROM FLIGHT EXEC SUBROUTINES						 *	1709
     * 18    ITEMNUM_ =	ITEM NUMBER LOOP INDEX								 *	1710
     * 19    NFMXBADE_ (3,32) =	THE MAXIMUM NUMBER OF CONSECUTIVE BAD (I.E.. OUT-OF-LIMITS) REPORTS	 *	1713
     *		     BEFORE REQUESTING THE SAFING OF THE NICMOS	INSTRUMENT, FOR	ALL ITEMS IN EACH	 *
     *		     LIMIT-CHECK TABLE									 *
     * 20    ..	DATA NFMXBADE:										 *	1714
     * 21    ..	NFMXBAD1_ = 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3		 *	1715
     * 22    ..	NFMXBAD2_ = 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3		 *	1716
     * 23    ..	NFMXBAD3_ = 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3		 *	1717
     * 24    NLIMCHKT_ = LIMIT-CHECK TABLE								 *	1718
     * 25    ..	1 = HOLD TABLE										 *	1719
     * 26    ..	2 = OPER1 TABLE										 *	1720
     * 27    ..	3 = OPER2 TABLE										 *	1721
     * 28    NLLIMTAB_ = HOLDS LAST LIMIT CHECK	TABLE SELECTION						 *	1722
     * 29    ..	-1 = INITIALIZED VALUE									 *	1723
     * 30    ..	1 = HOLD TABLE										 *	1724
     * 31    ..	2 = OPER1 TABLE										 *	1725
     * 32    ..	3 = OPER2 TABLE										 *	1726
     * 33    SAFJUST_ =	SAFING JUSTIFICATION								 *	1727
     * 34    ..	0 = SAFING IS NOT JUSTIFIED								 *	1728
     * 35    ..	1 = SAFING IS JUSTIFIED									 *	1729
     *													 *	1730


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  19.001
01 JAN 95	SAFING PROCESSOR


     NFSAFING  (PROCESSOR #23)	 (continued)


     *													 *
     * 36    TEMP_ = TEMPORARY VARIABLE									 *
     * 37    ENDDATA											 *	1731
     * 38    ..												 *	1732
     * 39    ..												 *	1733
     * 40    IF	INITIALIZATION IS REQUIRED								 *	1734
     * 41	 NLLIMTAB_ = -1	..SET SO THAT A	LIMIT TABLE WILL BE SELECTED				 *	1735
     * 42	 SAFJUST_ = 0 ..INDICATE THAT NICMOS SAFING IS NOT JUSTIFIED				 *	1736
     * 43    ENDIF											 *	1737
     * 44    ..FIND CURRENT VALUE OF NLIMCHKT_								 *	1738
     * 45    ..ASSUME INSTRUMENT IS IN HOLD								 *	1739
     * 46    NLIMCHKT_ = 1										 *	1740
     * 47    ..IF NOPERON1 IS ON									 *	1741
     * 48    IF	( IAND(NCVT_(NDREF_(NOPERONS_, NFNICMOS_)),NOPERON1_) .EQ. 1)				 *	1742
     * 49	 NLIMCHKT_ = 2 ..CHOOSE	LIMIT-CHECK TABLE 2 (OPER1)					 *	1743
     * 50	 ..IF NOPERON2 IS ON ALSO								 *	1744
     * 51	 IF ( IAND(NCVT_(NDREF_(NOPERONS_, NFNICMOS_)),NOPERON2_) .EQ. 1)			 *	1745
     * 52	     SAFJUST_ =	1 ..INDICATE THAT SAFING IS JUSTIFIED					 *	1746
     * 53	     ..CALL ..REQUEST FLIGHT EXEC TO MAKE APPROPRIATE STATUS BUFFER ENTRY		 *	1747
  33 * 54	     ZISTAT (NFNICMOS_,	400, 0,	IRET_) ..BOTH NOPERON1 AND NOPERON2 ARE	ON		 *	1748
     * 55	 ENDIF											 *	1749
     * 56    ELSE											 *	1750
     * 57	 ..IF NOPERON2 IS ON									 *	1751
     * 58	 IF ( IAND(NCVT_(NDREF_(NOPERONS_, NFNICMOS_)),NOPERON2_) .EQ. 1)			 *	1752
     * 59	     NLIMCHKT_ = 3 ..CHOSE LIMIT-CHECK TABLE 3 (OPER2)					 *	1753
     * 60	 ENDIF											 *	1754
     * 61    ENDIF											 *	1755
     * 62    ..IF INSTRUMENT MODE HAS CHANGED SINCE LAST INVOCATION OF THE SAFING PROCESSOR		 *	1757
     * 63    IF	(NLIMCHKT_ .NE.	NLLIMTAB_)								 *	1758
     * 64	 ..RESET BAD REPORTS									 *	1759
     * 65	 DO FOR	ITEMNUM_ = 1, 32 ..FOR EACH OF THE 32 ITEMS IN THE CURRENT EXECUTIVE LIMIT-CHECK *	1761
     *			 TABLE										 *
     * 66	     BADE_(ITEMNUM_) = 0 ..RESET NUMBER	OF CONSECUTIVE BAD REPORTS			 *	1762
     * 67	 ENDDO											 *	1763
     * 68	 ..CALL	..REQUEST NSSC-1 FLIGHT	EXECUTIVE TO USE THE LIMIT-CHECK TABLE NLIMCHKT_	 *	1765
  25 * 69	 ZILIM (NFNICMOS_, NLIMCHKT_, IRET_)							 *	1766
     * 70	 IF NSSC-1 FLIGHT EXECUTIVE REFUSED THE	REQUEST	(IRET_ .NE. 0)				 *	1767
     * 71	     ..CALL ..REQUEST FLIGHT EXEC TO MAKE APPROPRIATE STATUS BUFFER ENTRY		 *	1768
  33 * 72	     ZISTAT (NFNICMOS_,	401, NLIMCHKT_,	IRET_) ..INCLUDE REQUESTED LIMIT-CHECK TABLE	 *	1770
     *			     NUMBER NLIMCHKT_								 *
     * 73	     SAFJUST_ =	1 ..INDICATE THAT SAFING IS JUSTIFIED					 *	1771
     * 74	 ENDIF											 *	1772
     * 75	 .. COPY CURRENT LIMIT-CHECK TABLE TO LAST LIMIT-CHECK TABLE FOR NEXT INVOCATION OF THE	 *	1774
     *			 SAFING	PROCESSOR								 *
     * 76	 NLLIMTAB_ = NLIMCHKT_									 *	1775
     * 77    ELSE NO LIMIT-CHECK TABLE REQUEST DURING THIS INVOCATION -	INSPECT	THE LIMIT-CHECK	FLAGS	 *	1777
     *		     SET BY THE	NSSC-1 FLIGHT EXECUTIVE	LIMIT-CHECKER					 *
     * 78	 ..											 *	1778
     * 79	 FLAGWD_ = NLFLGS_ ..GET LIMIT-CHECK FLAG WORD FROM NSSC-1 FLIGHT EXECUTIVE		 *	1779
     * 80	 FLAGNUM_ = 32 ..LOOK AT FLAG 32 FIRST,	THEN COUNT DOWN					 *	1780
     *													 *	1781


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  19.002
01 JAN 95	SAFING PROCESSOR


     NFSAFING  (PROCESSOR #23)	 (continued)


     *													 *
     * 81	 DO WHILE (FLAGNUM_ .GE. 1) ..FLAG NUMS	ARE BETWEEN 1 AND 32				 *
     * 82	     IF	FLAG INDICATES ED ITEM IS OUT-OF-LIMITS	(FLAGWD_ .LT. 0)			 *	1782
     * 83		 BADE_(FLAGNUM_) = BADE_(FLAGNUM_) + 1 ..BUMP #	CONSECUTIVE BAD	REPORTS	FOR THIS *	1784
     *				 ITEM									 *
     * 84		 IF TOO	MANY CONSECUTIVE BAD REPORTS FOR THIS ITEM IN THIS LIMIT-CHECK TABLE	 *	1786
     *				 (BADE_(FLAGNUM_) .GE. NFMXBADE_(NLIMCHKT_, FLAGNUM_))			 *
     * 85		     ..REQUEST FLIGHT EXEC TO MAKE APPROPRIATE STATUS BUFFER ENTRY. THE	DATA	 *	1789
     *				     WORD CONTAINS THE LIMIT-CHECK TABLE NUMBER	IN BITS	10 AND 11 AND	 *
     *				     THE NUMBER	OF THE OFFENDING ENGINEERING DATA ITEM IN THE LOWER 8	 *
     *				     BITS.								 *
     * 86		     TEMP_ = IOR(ISHFT(NLIMCHKT_, 9), FLAGNUM_)					 *	1790
     * 87		     ..CALL									 *	1791
  33 * 88		     ZISTAT (NFNICMOS_,	402, TEMP_, IRET_)					 *	1792
     * 89		     SAFJUST_ =	1 ..INDICATE THAT SAFING IS JUSTIFIED				 *	1793
     * 90		     UNDO ..EXIT FROM THE DO WHILE						 *	1794
     * 91		 ENDIF										 *	1795
     * 92	     ELSE ED ITEM IS WITHIN LIMITS							 *	1796
     * 93		 BADE_(FLAGNUM_) = 0 ..RESET # OF CONSECUTIVE BAD REPORTS FOR THIS ED ITEM	 *	1797
     * 94	     ENDIF										 *	1798
     * 95	     FLAGWD_ = ISHFT(FLAGWD_, 1) ..SHIFT FLAG WORD 1 BIT LEFT				 *	1799
     * 96	     FLAGNUM_ =	FLAGNUM_ - 1 ..DECREMENT NUMBER	OF FLAG	NOW TO BE CONSIDERED		 *	1800
     * 97	 ENDDO											 *	1801
     * 98    ENDIF											 *	1802
     * 99    ..												 *	1803
     *100    ..												 *	1804
     *101    IF	NICMOS SAFING IS JUSTIFIED (SAFJUST_ .GT. 0)						 *	1805
     *102	 ..CALL	..REQUEST NSSC-1 FLIGHT	EXECUTIVE TO INITIATE THE NICMOS SAFING	SEQUENCE	 *	1807
  28 *103	 ZISAFE	(NFNICMOS_, NSAPNUM_)								 *	1808
     *104    ENDIF											 *	1809
     *105    RETURN											 *	1810
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  20
01 JAN 95

























			   ****************************************************
			   *						      *
			   * DELAYED COMMAND SEQUENCE STORED IN	NICMOS MEMORY *
			   *						      *
			   ****************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  21
01 JAN 95	DELAYED	COMMAND	SEQUENCE STORED	IN NICMOS MEMORY


     NCOMSKEL (UNIQUE SEQUENCE 1)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = NCOMSKEL									 *	1813
     *	2    ..IDENTIFICATION =	NICMOS CONTROL SECTION COMMUNICATION SKELETON COMMAND SEQUENCE		 *	1815
     *	3    ..ENGLISH NAME = SKELETON COMMAND								 *	1816
     *	4    ..LANGUAGE	= CAINE, FARBER, & GORDON (PDL)							 *	1817
     *	5    ..PURPOSE = LOCATION WHERE	COMMANDS TO SEND SLEW CONFIRMATION AND FORWARD TAKE DATA FLAG	 *	1819
     *		     ARE BUILT										 *
     *	6    ..NOTES = THE SKELETON COMMANDS ARE COMPOSED OF THE ACTUAL	27 COMMAND BITS	AND A 22 BIT	 *	1822
     *		     TIME CODE.	VALUES ARE SUPPLIED BY NFCSCOMM	USING THE COMMAND SKELETON.		 *
     *	7    ..---------------------------------------------------------------------------		 *	1823
     *	8    NCOMSKEL_(9) ..CAN	HOLD A MAXIMUM OF 3 COMMANDS						 *	1824
     *	9    ..	EACH COMMAND NEEDS THREE WORDS IN THE NCOMSKEL_	TABLE					 *	1825
     * 10    ..	COMMAND	WORD 1 (CONTROL	BITS, HI-ORDER TIME CODE BITS)					 *	1826
     * 11    ..	COMMAND	WORD 2 (LOW-ORDER TIME CODE BITS, HI-ORDER COMMAND BITS)			 *	1827
     * 12    ..	H-O BITS: 9 8 7	6 5 4 3	2 1								 *	1828
     * 13    ..	CONTENTS: 0 0 R	R R R R	L L								 *	1829
     * 14    ..	R = RIU	NUMBER,	L = LINE NUMBER	(2 HIGH	BITS)						 *	1830
     * 15    ..	COMMAND	WORD 3 (LOW-ORDER COMMAND BITS)							 *	1831
     * 16    ..	L-O BITS: 1 1 1	1 1 1 1	1 1								 *	1832
     * 17    ..	L-O BITS: 8 7 6	5 4 3 2	1 0 9 8	7 6 5 4	3 2 1						 *	1833
     * 18    ..	CONTENTS: L D D	D D D D	D D D D	D D D D	D D P						 *	1834
     * 19    ..	L = LINE NUMBER	(LOW BIT), D = DATA BITS, P = ODD PARITY (27 BITS)			 *	1835
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  22
01 JAN 95	DELAYED	COMMAND	SEQUENCE STORED	IN NICMOS MEMORY


     NMACSKEL (UNIQUE SEQUENCE 2)

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = NMACSKEL									 *	1837
     *	2    ..IDENTIFICATION =	NICMOS NFMACRO AP SKELETON COMMAND SEQUENCE				 *	1838
     *	3    ..ENGLISH NAME = SKELETON COMMAND								 *	1839
     *	4    ..LANGUAGE	= CAINE, FARBER, & GORDON (PDL)							 *	1840
     *	5    ..PURPOSE = LOCATION WHERE	MACRO COMMANDS ARE BUILT					 *	1841
     *	6    ..NOTES = THE SKELETON COMMANDS ARE COMPOSED OF THE ACTUAL	27 COMMAND BITS	AND A 22 BIT	 *	1844
     *		     TIME CODE.	VALUES ARE SUPPLIED BY NFMACRO USING THE COMMAND SKELETON. THE TOTAL	 *
     *		     NUMBER OF COMMANDS	IS (48*3)+ 2.							 *
     *	7    ..---------------------------------------------------------------------------		 *	1845
     *	8    NMACSKEL_(438) ..CAN HOLD A MAXIMUM OF 146	COMMANDS					 *	1846
     *	9    ..	EACH COMMAND NEEDS THREE WORDS IN THE NMACSKEL_	TABLE					 *	1847
     * 10    ..	COMMAND	WORD 1 (CONTROL	BITS, HI-ORDER TIME CODE BITS)					 *	1848
     * 11    ..	COMMAND	WORD 2 (LOW-ORDER TIME CODE BITS, HI-ORDER COMMAND BITS)			 *	1849
     * 12    ..	H-O BITS: 9 8 7	6 5 4 3	2 1								 *	1850
     * 13    ..	CONTENTS: 0 0 R	R R R R	L L								 *	1851
     * 14    ..	R = RIU	NUMBER,	L = LINE NUMBER	(2 HIGH	BITS)						 *	1852
     * 15    ..	COMMAND	WORD 3 (LOW-ORDER COMMAND BITS)							 *	1853
     * 16    ..	L-O BITS: 1 1 1	1 1 1 1	1 1								 *	1854
     * 17    ..	L-O BITS: 8 7 6	5 4 3 2	1 0 9 8	7 6 5 4	3 2 1						 *	1855
     * 18    ..	CONTENTS: L D D	D D D D	D D D D	D D D D	D D P						 *	1856
     * 19    ..	L = LINE NUMBER	(LOW BIT), D = DATA BITS, P = ODD PARITY (27 BITS)			 *	1857
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  23
01 JAN 95

























	       ****************************************************************************
	       *									  *
	       * SI C&DH SYSTEM	SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY) *
	       *									  *
	       ****************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  24
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZIDELT

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZIDELT									 *	1860
     *	2    ..IDENTIFICATION SI C&DH SYSTEM SIMULATOR SUBROUTINE					 *	1861
     *	3    ..PURPOSE = RELATIVE TIME COMMAND INDEX MAINTENANCE					 *	1862
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  25
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZILIM

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZILIM									 *	1864
     *	2    ..IDENTIFICATION SI C&DH SYSTEM SIMULATOR SUBROUTINE					 *	1865
     *	3    ..PURPOSE = LIMIT CHECK SELECTION								 *	1866
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  26
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZIREF

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZIREF									 *	1868
     *	2    ..IDENTIFICATION SI C&DH SYSTEM SIMULATOR SUBROUTINE					 *	1869
     *	3    ..PURPOSE = RESET EVENT FLAGS								 *	1870
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  27
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZIRTCC

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZIRTCC									 *	1872
     *	2    ..IDENTIFICATION =	SI C&DH	SYSTEM SIMULATOR SUBROUTINE					 *	1873
     *	3    ..PURPOSE = CONTROL RELATIVE TIME COMMAND SEQUENCE						 *	1874
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  28
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZISAFE

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZISAFE									 *	1876
     *	2    ..IDENTIFICATION =	SI C&DH	SYSTEM SIMULATOR SUBROUTINE					 *	1877
     *	3    ..PURPOSE = REQUEST THE ACTIVATION	OF THE SAFING SEQUENCE					 *	1878
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  29
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZISEF

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZISEF									 *	1880
     *	2    ..IDENTIFICATION SI C&DH SYSTEM SIMULATOR SUBROUTINE					 *	1881
     *	3    ..PURPOSE = SET EVENT FLAGS								 *	1882
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  30
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZISLEW

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZISLEW									 *	1884
     *	2    ..IDENTIFICATION =	SI C&DH	SYSTEM SIMULATOR SUBROUTINE					 *	1885
     *	3    ..PURPOSE = COORDINATE TRANSFORMATION AND SSM SLEW	REQUEST					 *	1886
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  31
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZISPED

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZISPED									 *	1888
     *	2    ..IDENTIFICATION =	SI C&DH	SYSTEM SIMULATOR SUBROUTINE					 *	1889
     *	3    ..PURPOSE = CONTROLS THE COLLECTION OF SPECIAL ENGINEERING	DATA				 *	1890
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  32
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZIPITR

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZIPITR									 *	1892
     *	2    ..IDENTIFICATION =	SI C&DH	SYSTEM SIMULATOR SUBROUTINE					 *	1893
     *	3    ..PURPOSE = READS ANY OF THE WORDS	IN THE MOST RECENT SSM PIT				 *	1894
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  33
01 JAN 95	SI C&DH	SYSTEM SIMULATOR SUBROUTINES (FOR CROSS-REFERENCE PURPOSES ONLY)


     ZISTAT

REF
PAGE *****************************************************************************************************
     *													 *
     *	1    ..MODULE NAME = ZISTAT									 *	1896
     *	2    ..IDENTIFICATION =	SI C&DH	SYSTEM SIMULATOR SUBROUTINE					 *	1897
     *	3    ..PURPOSE = ENTER MESSAGE IN STATUS BUFFER							 *	1898
     *													 *
     *****************************************************************************************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  34
01 JAN 95

























				       ***************************
				       *			 *
				       * SEGMENT REFERENCE TREES *
				       *			 *
				       ***************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  34.001
01 JAN 95	SEGMENT	REFERENCE TREES


NFCSCOMM
--------


 LN   DEFN  SEGMENT
----  ----  -------

   1	 9   NFCSCOMM
   2	31	 ZISPED
   3	 6	 NFACTION
   4	28	     ZISAFE
   5	27	     ZIRTCC
   6	33	     ZISTAT
   7	10	 NFALIVE
   8	 6	    -NFACTION	(3)
   9	11	 NFSLEW
  10	 6	    -NFACTION	(3)
  11	30	     ZISLEW
  12	29	 ZISEF
  13	26	 ZIREF
  14	32	 ZIPITR
  15	12	 NFCSSEND
  16	24	     ZIDELT
  17	 6	    -NFACTION	(3)
  18	27	     ZIRTCC


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  34.002
01 JAN 95	SEGMENT	REFERENCE TREES


NFMACRO
-------


 LN   DEFN  SEGMENT
----  ----  -------

   1	14   NFMACRO
   2	15	 NFTIMECU
   3	 7	     NFPARITY
   4	 6	     NFACTION
   5	28		 ZISAFE
   6	27		 ZIRTCC
   7	33		 ZISTAT
   8	16	 NFLOADED
   9	 6	    -NFACTION	(4)
  10	 6	-NFACTION   (4)
  11	17	 NFUNLOAD
  12	 7	     NFPARITY
  13	 6	    -NFACTION	(4)
  14	24	 ZIDELT
  15	27	 ZIRTCC


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  34.003
01 JAN 95	SEGMENT	REFERENCE TREES


NFSAFING
--------


 LN   DEFN  SEGMENT
----  ----  -------

   1	19   NFSAFING
   2	33	 ZISTAT
   3	25	 ZILIM
   4	28	 ZISAFE


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35
01 JAN 95

























					 ***********************
					 *		       *
					 * INDEX TO DATA ITEMS *
					 *		       *
					 ***********************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.001
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS
-------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   6	13   ID	     ACTION_
			 6  NFACTION
			       13

  14	14   ID	     ALLBUFWD_
			14  NFMACRO
			       14  55

   6	18   ID	     APNUM_
			 6  NFACTION
			       18  33  39  43

  19	14   ID	     BADE_
			19  NFSAFING
			       14  66  83  84  93

   6	19   ID	     ESBNUM_
			 6  NFACTION
			       19  53  56

   6	20   ID	     ESBPAR_
			 6  NFACTION
			       20  56

  19	15   ID	     FLAGNUM_
			19  NFSAFING
			       15  80  83  84  86  93  96

  19	16   ID	     FLAGWD_
			19  NFSAFING
			       16  79  82  95

  14	13   ID	     HIBACNST_
			14  NFMACRO
			       13

   4	 8   DI	     INDXROW_
			14  NFMACRO
			       67

   6	23   ID	     IRET_
			 6  NFACTION
			       23  39  46  56


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.002
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			 9  NFCSCOMM
			       16  177	331  337  354
			12  NFCSSEND
			       59  64  68  73
			14  NFMACRO
			       16  148	153  157  163
			19  NFSAFING
			       17  54  69  70  72  88
			11  NFSLEW
			       65  71

  19	18   ID	     ITEMNUM_
			19  NFSAFING
			       18  65  66

   4	 9   DI	     IXTABLE_

   9	15   ID	     I_
			 9  NFCSCOMM
			       15  185	186
			14  NFMACRO
			       15  55  56
			15  NFTIMECU
			       48

   5   172   DI	     LOW13BTS_
			 6  NFACTION
			       53

   4	13   DI	     MINFRMNO_
			10  NFALIVE
			       29

   5   156   DI	     NBADCKSM_
			 9  NFCSCOMM
			       340

   5   146   DI	     NBADIMED_
			16  NFLOADED
			       51

   5   147   DI	     NBADLWD_
			16  NFLOADED
			       35


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.003
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   5   103   DI	     NBADMDCT_
			 9  NFCSCOMM
			       165  194	 202  211

   9	17   ID	     NBADMDMX_
			 9  NFCSCOMM
			       17

   5   157   DI	     NBADMOD1_
			 9  NFCSCOMM
			       200

   5   158   DI	     NBADMOD2_
			 9  NFCSCOMM
			       206

   5   173   DI	     NBOTMODE_

  14	17   ID	     NBUFFER_
			14  NFMACRO
			       17  87  95  107	111  117  125

  16	13   ID	     NBUFFNUM_
			16  NFLOADED
			       13  35  49  64
			17  NFUNLOAD
			       13  22  60  76  106  114

  14	23   ID	     NBUFWORD_
			16  NFLOADED
			       23  49  59
			14  NFMACRO
			       23
			17  NFUNLOAD
			       57  110

   5   174   DI	     NCAPNUM_

   9	18   ID	     NCKSMEFL_
			 9  NFCSCOMM
			       18  331	337

   5	60   DI	     NCKSMIND_


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.004
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			 9  NFCSCOMM
			       340  409

  14	26   ID	     NCLRBOOT_
			14  NFMACRO
			       26
			17  NFUNLOAD
			       40

  14	27   ID	     NCLRCMD_
			14  NFMACRO
			       27
			15  NFTIMECU
			       19  21  22  23
			17  NFUNLOAD
			       40  43  46  47  48

  14	28   ID	     NCLROPER_
			14  NFMACRO
			       28
			15  NFTIMECU
			       19
			17  NFUNLOAD
			       43

   5   104   DI	     NCLRQFLG_
			14  NFMACRO
			       61
			17  NFUNLOAD
			       52

  14	29   ID	     NCMDCNT_
			14  NFMACRO
			       29  86
			17  NFUNLOAD
			       96  100

  17	16   ID	     NCMDCTMX_
			17  NFUNLOAD
			       16

   5   107   DI	     NCOMCNT_
			 9  NFCSCOMM
			       167


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.005
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			12  NFCSSEND
			       54

   5   159   DI	     NCOMRTSE_
			12  NFCSSEND
			       73

  12	23   ID	     NCOMSKEL_
			21  NCOMSKEL
			       8
			12  NFCSSEND
			       23  24  25  35  36  37  40  41  42  50  51  52

   4	10   DI	     NCVT_

   5   160   DI	     NDETINVD_
			11  NFSLEW
			       42

  16	16   ID	     NDLCDMSK_
			16  NFLOADED
			       16

   4	11   DI	     NDREF_

   5	26   DI	     NESBMSGH_
			 9  NFCSCOMM
			       254

   5	25   DI	     NESBMSGL_
			 9  NFCSCOMM
			       254

   9	19   ID	     NESBMSGT_
			 9  NFCSCOMM
			       19  254	259

   9	20   ID	     NESBOFST_
			 9  NFCSCOMM
			       20  254

   5	28   DI	     NESBPARH_
			 9  NFCSCOMM
			       256


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.006
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   5	27   DI	     NESBPARL_
			 9  NFCSCOMM
			       256

   9	21   ID	     NESBPARM_
			 9  NFCSCOMM
			       21  256	259

   5   108   DI	     NFBUFILL_
			16  NFLOADED
			       64
			14  NFMACRO
			       53
			17  NFUNLOAD
			       22

   5   116   DI	     NFCKSMFL_
			 9  NFCSCOMM
			       342

   9	22   ID	     NFLMODE_
			 9  NFCSCOMM
			       22  169	192  379

   5   119   DI	     NFLVMODE_
			 9  NFCSCOMM
			       170  203	 380

  19	19   ID	     NFMXBADE_
			19  NFSAFING
			       19  84

   5   175   DI	     NFNICMOS_
			 6  NFACTION
			       33  39  43  46  56
			 9  NFCSCOMM
			       177  331	 337
			12  NFCSSEND
			       59  68
			14  NFMACRO
			       148  157
			19  NFSAFING
			       54  69  72  88  103


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.007
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

  11	15   ID	     NFSLMAT1_
			11  NFSLEW
			       15  54

  11	21   ID	     NFSLMAT2_
			11  NFSLEW
			       21  58

  11	27   ID	     NFSLMAT3_
			11  NFSLEW
			       27  61

   5	64   DI	     NFSPARE_

   5	12   DI	     NFSPEDIN_
			 9  NFCSCOMM
			       177  186

   5	68   DI	     NFSPEDTA_
			 9  NFCSCOMM
			       177

   5	42   DI	     NFSWMODE_
			 9  NFCSCOMM
			       200  206	 379  380  404
			14  NFMACRO
			       70

  14	30   ID	     NFTCUFLG_
			14  NFMACRO
			       30
			15  NFTIMECU
			       15

   5   123   DI	     NFTIMEHH_
			15  NFTIMECU
			       42

   5   124   DI	     NFTIMEHI_
			15  NFTIMECU
			       37  39  42  73

   5   126   DI	     NFTIMELO_


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.008
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			15  NFTIMECU
			       30  32  75

   5   125   DI	     NFTIMEML_
			15  NFTIMECU
			       32

  17	17   ID	     NFTTAG0_
			17  NFUNLOAD
			       17  92

  14	31   ID	     NFTTAG25_
			14  NFMACRO
			       31
			15  NFTIMECU
			       86
			17  NFUNLOAD
			       89

   9	26   ID	     NHARDMX_
			 9  NFCSCOMM
			       26

   9	27   ID	     NHWRESET_
			 9  NFCSCOMM
			       27  290

   5   161   DI	     NHWRSOTR_
			 9  NFCSCOMM
			       293

   9   283   ID	     NHWRSPTR_
			 9  NFCSCOMM
			       283  287	 290

   9	52   ID	     NHWRSUSP_
			 9  NFCSCOMM
			       52  287

   5   162   DI	     NIDXCOMM_
			12  NFCSSEND
			       64


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.009
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   5   148   DI	     NIDXMAC_
			14  NFMACRO
			       153

  14	33   ID	     NINPBUF_
			14  NFMACRO
			       33  56
			17  NFUNLOAD
			       60  76  106

   5   149   DI	     NINVDENT_
			17  NFUNLOAD
			       116

  14	39   ID	     NLBUFWRD_
			14  NFMACRO
			       39
			17  NFUNLOAD
			       110

   4	12   DI	     NLFLGS_
			19  NFSAFING
			       79

  19	24   ID	     NLIMCHKT_
			19  NFSAFING
			       24  46  49  59  69  72  76  84  86

  14	40   ID	     NLINENUM_
			14  NFMACRO
			       40
			15  NFTIMECU
			       55  58  65  73  75  77
			17  NFUNLOAD
			       60  69  76

   5	77   DI	     NLINETAB_
			15  NFTIMECU
			       55  58
			17  NFUNLOAD
			       60

  19	28   ID	     NLLIMTAB_


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.010
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			19  NFSAFING
			       28  41  76

   5   127   DI	     NLMNFRCT_
			10  NFALIVE
			       50
			 9  NFCSCOMM
			       163

  14	41   ID	     NLODFLAG_
			16  NFLOADED
			       40  45
			14  NFMACRO
			       41  92

   9	76   ID	     NLRESET_
			 9  NFCSCOMM
			       76  171	315

   5   128   DI	     NMACCNTH_
			14  NFMACRO
			       143

   5   129   DI	     NMACCNT_
			14  NFMACRO
			       141  143

  16	17   ID	     NMACDMSK_
			16  NFLOADED
			       17

   5   150   DI	     NMACRTSE_
			14  NFMACRO
			       163

  14   137   ID	     NMACSKEL_
			14  NFMACRO
			       137  138	 139
			15  NFTIMECU
			       21  22  23  50  65  73  75  77  86
			17  NFUNLOAD
			       46  47  48  63  69  76  89  92
			22  NMACSKEL
			       8


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.011
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   5   176   DI	     NMAPNUM_
			16  NFLOADED
			       35  51
			14  NFMACRO
			       103  129	 148  153  157	163
			15  NFTIMECU
			       92
			17  NFUNLOAD
			       116

  11	33   ID	     NMATXADR_
			11  NFSLEW
			       33  54  58  61  65

  10	14   ID	     NMFAILMX_
			10  NFALIVE
			       14

   5   130   DI	     NMFAIL_
			10  NFALIVE
			       25  38  48
			 9  NFCSCOMM
			       166

   5   164   DI	     NMFCFLBT_
			10  NFALIVE
			       43

   5   163   DI	     NMFCFLOP_
			10  NFALIVE
			       35

  10	15   ID	     NMFCHECK_
			10  NFALIVE
			       15

   5	41   DI	     NMINFRCT_
			10  NFALIVE
			       29  50
			 9  NFCSCOMM
			       402

   5   151   DI	     NMRTSARB_


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.012
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			14  NFMACRO
			       129

   5   152   DI	     NMRTSASB_
			14  NFMACRO
			       103

   5   153   DI	     NMRTSATU_
			15  NFTIMECU
			       92

  14	42   ID	     NMSWOFST_
			14  NFMACRO
			       42  67

  14	44   ID	     NNEPMSK_
			14  NFMACRO
			       44  56
			17  NFUNLOAD
			       106

   5   177   DI	     NOOPCMD_
			12  NFCSSEND
			       50  51  52
			14  NFMACRO
			       137  138	 139

   5   178   DI	     NOPRMODE_

   7	16   ID	     NPARBIT_
			 7  NFPARITY
			       16  23  25  29  31  35

   5	46   DI	     NRESET_
			 9  NFCSCOMM
			       283  301	 304  311  315	406

  14	45   ID	     NRIUNUM_
			14  NFMACRO
			       45
			15  NFTIMECU
			       65
			17  NFUNLOAD
			       69


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.013
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   9	77   ID	     NRSACTN_
			 9  NFCSCOMM
			       77  287	290  293  301  304  307	 311

   9	78   ID	     NRTCWDCT_
			 9  NFCSCOMM
			       78  181
			12  NFCSSEND
			       23  24  25  27  35  36  37  40  41  42  45  50  51  52  54  56  59

   5	31   DI	     NSAFMSGH_
			 9  NFCSCOMM
			       226

   5	32   DI	     NSAFMSGL_
			 9  NFCSCOMM
			       226

   9	79   ID	     NSAFMSGT_
			 9  NFCSCOMM
			       79  226	231

   9	80   ID	     NSAFOFST_
			 9  NFCSCOMM
			       80  226

   5	34   DI	     NSAFPARH_
			 9  NFCSCOMM
			       228

   5	33   DI	     NSAFPARL_
			 9  NFCSCOMM
			       228

   9	81   ID	     NSAFPARM_
			 9  NFCSCOMM
			       81  228	231

   5   165   DI	     NSAFREQ_
			 9  NFCSCOMM
			       231

   5   179   DI	     NSAPNUM_


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.014
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			19  NFSAFING
			       103

  14	46   ID	     NSEQPT_
			14  NFMACRO
			       46  73  137  138	 139  141  145	148
			15  NFTIMECU
			       21  22  23  25  50  65  73  75  77  81  86  88
			17  NFUNLOAD
			       46  47  48  50  63  69  76  79  89  92  104

   5	17   DI	     NSLEWDET_
			 9  NFCSCOMM
			       398
			11  NFSLEW
			       42

  12	15   ID	     NSLEWMAC_
			12  NFCSSEND
			       15  23  24  25

   9	82   ID	     NSLEWREQ_
			 9  NFCSCOMM
			       82  164
			11  NFSLEW
			       46  76

  11	34   ID	     NSLEWVEC_
			11  NFSLEW
			       34  48  49  65

   9	85   ID	     NSLWCONF_
			 9  NFCSCOMM
			       85  179
			11  NFSLEW
			       45

   5   166   DI	     NSLWFAIL_
			11  NFSLEW
			       71

   9	88   ID	     NSOFTMX_
			 9  NFCSCOMM
			       88


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.015
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   5   180   DI	     NSUSEQNM_
			 6  NFACTION
			       39

   5	38   DI	     NSUSMSGH_
			 9  NFCSCOMM
			       240

   5	37   DI	     NSUSMSGL_
			 9  NFCSCOMM
			       240

   9	90   ID	     NSUSMSGT_
			 9  NFCSCOMM
			       90  240	245

   9	89   ID	     NSUSOFST_
			 9  NFCSCOMM
			       89  240

   5	40   DI	     NSUSPARH_
			 9  NFCSCOMM
			       242

   5	39   DI	     NSUSPARL_
			 9  NFCSCOMM
			       242

   9	91   ID	     NSUSPARM_
			 9  NFCSCOMM
			       91  242	245

   5   167   DI	     NSUSREQ_
			 9  NFCSCOMM
			       245

   5   131   DI	     NSUSTATE_
			 6  NFACTION
			       48

   9	92   ID	     NSWRESET_
			 9  NFCSCOMM
			       92  304


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.016
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

   5   168   DI	     NSWRSOTR_
			 9  NFCSCOMM
			       307

   9   121   ID	     NSWRSUSP_
			 9  NFCSCOMM
			       121  301

   5   134   DI	     NSWSPARE_

   5	90   DI	     NSWSPED_
			 9  NFCSCOMM
			       386  389	 392  395  398	402  404  406  409

   9   150   ID	     NTDFCUR_
			 9  NFCSCOMM
			       150  355	 360

  12	16   ID	     NTDFDMAC_
			12  NFCSSEND
			       16  35  36  37

   9   151   ID	     NTDFFWD_
			 9  NFCSCOMM
			       151  180	 361

   9   154   ID	     NTDFSAVE_
			 9  NFCSCOMM
			       154  168	 360

  12	17   ID	     NTDFUMAC_
			12  NFCSSEND
			       17  40  41  42

  14	47   ID	     NTIMEMAC_
			14  NFMACRO
			       47
			15  NFTIMECU
			       77

  14	48   ID	     NUMCMDBF_
			14  NFMACRO
			       48


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.017
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

  17	18   ID	     NWORD_
			17  NFUNLOAD
			       18  57  60  76  106  110	 114

   5	14   DI	     NXSLEWHI_
			 9  NFCSCOMM
			       389
			11  NFSLEW
			       48

   5	13   DI	     NXSLEWLO_
			 9  NFCSCOMM
			       386
			11  NFSLEW
			       48

   5	16   DI	     NYSLEWHI_
			 9  NFCSCOMM
			       395
			11  NFSLEW
			       49

   5	15   DI	     NYSLEWLO_
			 9  NFCSCOMM
			       392
			11  NFSLEW
			       49

   9   158   ID	     PITWRD2_
			 9  NFCSCOMM
			       158  354	 355

   5   181   DI	     REPLYMSK_
			 9  NFCSCOMM
			       186
			14  NFMACRO
			       70

   7	13   ID	     RTCSADR_
			 7  NFPARITY
			       13  35

  14	49   ID	     RTCSLEN_


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  35.018
01 JAN 95	INDEX TO DATA ITEMS


INDEX TO DATA ITEMS  (continued)
--------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			14  NFMACRO
			       49

   4	14   DI	     SAFING_
			 6  NFACTION
			       33

  19	33   ID	     SAFJUST_
			19  NFSAFING
			       33  42  52  73  89  101

   4	15   DI	     SI2USEQT_
			14  NFMACRO
			       67

   4	16   DI	     SSMTIMEH_
			15  NFTIMECU
			       37  39

   4	17   DI	     SSMTIMEL_
			15  NFTIMECU
			       30

   9   159   ID	     TDFMASK_
			 9  NFCSCOMM
			       159  355

  10	18   ID	     TEMP_
			10  NFALIVE
			       18  29  35  43
			16  NFLOADED
			       18  49  51
			19  NFSAFING
			       36  86  88
			15  NFTIMECU
			       81  83
			17  NFUNLOAD
			       19  79  81  114	116


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  36
01 JAN 95

























					**************************
					*			 *
					* INDEX	TO FLOW	SEGMENTS *
					*			 *
					**************************


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  36.001
01 JAN 95	INDEX TO FLOW SEGMENTS


INDEX TO FLOW SEGMENTS
----------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

  21	     FS	     NCOMSKEL

   6	     FS	     NFACTION
			10  NFALIVE
			       35  43
			 9  NFCSCOMM
			       200  206	 231  245  259	311  340
			12  NFCSSEND
			       64  73
			16  NFLOADED
			       35  51
			14  NFMACRO
			       103  129	 153  163
			11  NFSLEW
			       42  71
			15  NFTIMECU
			       92
			17  NFUNLOAD
			       116

  10	     FS	     NFALIVE
			 9  NFCSCOMM
			       216

   9	     FS	     NFCSCOMM

  12	     FS	     NFCSSEND
			 9  NFCSCOMM
			       373

  16	     FS	     NFLOADED
			14  NFMACRO
			       95  117

  14	     FS	     NFMACRO

   7	     FS	     NFPARITY
			15  NFTIMECU
			       83
			17  NFUNLOAD
			       81

  19	     FS	     NFSAFING


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  36.002
01 JAN 95	INDEX TO FLOW SEGMENTS


INDEX TO FLOW SEGMENTS	(continued)
-----------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

  11	     FS	     NFSLEW
			 9  NFCSCOMM
			       322

  15	     FS	     NFTIMECU
			14  NFMACRO
			       83

  17	     FS	     NFUNLOAD
			14  NFMACRO
			       107  125

  22	     FS	     NMACSKEL

  24	     FS	     ZIDELT
			12  NFCSSEND
			       59
			14  NFMACRO
			       148

  25	     FS	     ZILIM
			19  NFSAFING
			       69

  32	     FS	     ZIPITR
			 9  NFCSCOMM
			       354

  26	     FS	     ZIREF
			 9  NFCSCOMM
			       337

  27	     FS	     ZIRTCC
			 6  NFACTION
			       39
			12  NFCSSEND
			       68
			14  NFMACRO
			       157

  28	     FS	     ZISAFE
			 6  NFACTION
			       33  43


		NEAR INFRARED CAMERA AND MULTI-OBJECT SPECTROMETER (NICMOS)		      PAGE  36.003
01 JAN 95	INDEX TO FLOW SEGMENTS


INDEX TO FLOW SEGMENTS	(continued)
-----------------------------------


PAGE  LINE  TYPE    NAME AND REFERENCES
----  ----  ----    -------------------

			19  NFSAFING
			       103

  29	     FS	     ZISEF
			 9  NFCSCOMM
			       331

  30	     FS	     ZISLEW
			11  NFSLEW
			       65

  31	     FS	     ZISPED
			 9  NFCSCOMM
			       177

  33	     FS	     ZISTAT
			 6  NFACTION
			       46  56
			19  NFSAFING
			       54  72  88





























					**************************
					*			 *
					* END OF DESIGN	DOCUMENT *
					*			 *
					**************************