The TRACE sequence operations is controlled by the tables listed below;
| Num | Name | Address | # Entries |
|---|---|---|---|
| 1. | AEC-TABLE | 0xF000 | 128 |
| 2. | PZT-TABLE | 0xF4D0 | 3 X 16 |
| 3. | Wavelength-TABLE | 0xF500 | 32 |
| 3. | Target-TABLE | 0xF600 | 106 |
/* Sequence Tables:
*
* The fixed tables and their structures are defined here.
*/
struct AREAPRM {
unsigned int OpFmt : 9; // word 9
unsigned int Bin : 2;
unsigned int OP : 2;
unsigned int Ref : 3;
int RowOffset:12; // word 10
unsigned int RowBlks : 4;
int ColOffset:12; // word 11
unsigned int ColBlks : 4;
};
struct FRMDEFB {
unsigned int fid :16; // word 0
unsigned int LocateImin : 1; // word 1
unsigned int LocateImax : 1;
unsigned int DetectTrans : 1;
unsigned int DetectFlare : 1;
unsigned int DetectSuFlr : 1;
unsigned int EvtDetectArea : 1;
unsigned int RdoutAmp : 2;
unsigned int TeleCmd : 1;
unsigned int ExtractSize : 4;
unsigned int CameraMode : 3;
unsigned int ExpCtrlWord :16; // word 2
unsigned int TimeAvgIntrvl : 4; // word 3
unsigned int DoTimeAvg : 2;
unsigned int : 1;
unsigned int DarkTransient : 1;
unsigned int TransMult : 8;
unsigned int TransPixCnt :16; // word 4
unsigned int FlareCntRate :16; // word 5
unsigned int SuFlrCntRate :16; // word 6
unsigned int FlarePixCnt :16; // word 7
unsigned int FullCamOpFmt : 9; // word 8
unsigned int FullCamBin : 2;
unsigned int FullCamOP : 2;
unsigned int : 3;
struct AREAPRM SubArea[2];
unsigned int : 16; // word 15
};
struct ExpCtrlW {
unsigned int AECO_IND : 7;
unsigned int WLI : 5;
unsigned int EXEC : 1;
unsigned int DEF : 1;
unsigned int SPEC : 1;
unsigned int DRK : 1;
};
struct AREASPEC {
int out;
int TMS;
int TM0;
long SA;
int NC;
int NR;
int RL;
int BM;
int APID;
int CMP;
int QT_PCK;
int HT_LUT;
int QM;
int spare1;
int spare2;
};
struct P1IPB {
unsigned int SPG;
unsigned int BPT;
unsigned int BPYO;
unsigned int BPYL;
unsigned long P1SA;
unsigned int P1NC;
unsigned int P1NR;
unsigned int P1RL;
unsigned int P1BF;
unsigned int SF;
unsigned int SFHB;
unsigned long SFHC;
unsigned int FF;
unsigned int FHB;
unsigned long FHC;
unsigned int AECX;
unsigned int AEHB;
unsigned long AEHC;
unsigned int AELB;
unsigned long AELC;
unsigned int TF;
unsigned int TMUL;
unsigned long TPC;
unsigned int DT;
unsigned int TAI;
unsigned int T0;
unsigned int IMX;
unsigned int IMN;
unsigned int spare[6];
struct AREASPEC FCP2P;
struct AREASPEC A1P2P;
struct AREASPEC A2P2P;
};
struct DHCRES {
unsigned int FlareEvt;
unsigned int SuFlareEvt;
unsigned int TransEvt;
int AECAdjust;
unsigned int IMaxValid;
unsigned long IMaxLoc;
unsigned int IMinValid;
unsigned long IMinLoc;
unsigned int spare1;
unsigned int spare2;
unsigned int NewRes;
};
struct wlt {
unsigned int F1A : 8; // Filter Wheel 1 Address
unsigned int F1DB : 2; // Filter Wheel 1 Direction bits
unsigned int : 6;
unsigned int F2A : 8; // Filter Wheel 2 Address
unsigned int F2DB : 2; // Filter Wheel 2 Direction Bits
unsigned int : 6;
unsigned int QSA : 8; // Quadrant Selector Address
unsigned int QSDB : 2; // Quadrant Selector Direction Bits
unsigned int : 6;
unsigned int FMA : 8; // Focus Mechanism Address
unsigned int FMDB : 2; // Focus Mechanism Direction Bits
unsigned int : 6;
};
struct AREADEF {
unsigned int SRP :16;
int RowOffset:12;
unsigned int RowBlks : 4;
int ColOffset:12;
unsigned int ColBlks : 4;
};
struct pct {
unsigned int TID_l : 16; // Compiler does'nt allow 32 bit fields
unsigned int TID_h : 16;
unsigned int W2 : 8;
unsigned int W1 : 8;
unsigned int : 5;
unsigned int TC : 2;
unsigned int : 5;
unsigned int R2 : 1;
unsigned int A2 : 1;
unsigned int R1 : 1;
unsigned int A1 : 1;
struct AREADEF SubArea[2];
unsigned int LOBT_l : 16;
unsigned int LOBT_h : 16;
};
struct expt {
unsigned int shtr_md;
unsigned int pic_indx;
unsigned int sh_exp;
};
struct aect {
unsigned char DEF;
unsigned char CUR;
unsigned char SUP;
unsigned char SDN;
unsigned char PAH;
unsigned char PAL;
unsigned char INH;
unsigned char INL;
};
#define FDBTABLE 0xEFE0
#define PZTTABLE 0xF4D0
#define PTGCTRLTABLE 0xF600 // 0xE000
#define AECTABLE 0xF000 // 0xFC00
#define NUMPTG 106
#ifdef TRACE2
struct FRMDEFB *FDBarray = (struct FRMDEFB *) 0xEFE0;
struct FRMDEFB CurrFDB;
struct wlt *TS_WLT = (struct wlt *) 0xF500;
/*
struct wlt TS_WLT[32] = {
19, 2, 125, 2, 28, 2, 0, 2,
19, 2, 53, 0, 28, 2, 0, 2,
55, 0, 125, 2, 28, 2, 0, 2,
55, 0, 53, 0, 28, 2, 0, 2,
19, 2, 125, 2, 10, 2, 0, 2,
19, 2, 53, 0, 10, 2, 0, 2,
55, 0, 125, 2, 10, 2, 0, 2,
55, 0, 53, 0, 10, 2, 0, 2,
19, 2, 125, 2, 1, 2, 0, 2,
19, 2, 53, 0, 1, 2, 0, 2,
55, 0, 125, 2, 1, 2, 0, 2,
55, 0, 53, 0, 1, 2, 0, 2,
19, 2, 125, 2, 19, 2, 0, 2,
19, 2, 17, 2, 19, 2, 0, 2,
19, 2, 53, 0, 19, 2, 0, 2,
19, 2, 89, 2, 19, 2, 0, 2,
91, 2, 125, 2, 19, 2, 0, 2,
91, 2, 17, 2, 19, 2, 0, 2,
91, 2, 89, 2, 19, 2, 0, 2,
55, 0, 125, 2, 19, 2, 0, 2,
55, 0, 53, 0, 19, 2, 0, 2,
127, 2, 125, 2, 19, 2, 0, 2,
127, 2, 89, 2, 19, 2, 0, 2,
19, 2, 17, 2, 28, 2, 0, 2,
19, 2, 89, 2, 28, 2, 0, 2,
91, 2, 125, 2, 28, 2, 0, 2,
127, 2, 125, 2, 28, 2, 0, 2,
19, 3, 125, 3, 19, 3, 0, 3,
19, 3, 125, 3, 19, 3, 0, 3,
19, 3, 125, 3, 19, 3, 0, 3,
19, 3, 125, 3, 19, 3, 0, 3,
19, 3, 125, 3, 19, 3, 0, 3};
*/
struct wlt FrmWLT = {0, 0, 0, 0, 0, 0, 0, 0};
unsigned int *pWLT;
char *TS_PZTO = (char *) 0xF4D0;
char FrmPZTO[3] = {0, 0, 0};
unsigned int *pPZTO = (unsigned int *)&FrmPZTO;
struct pct *TS_PCT = (struct pct *) 0xF600;
struct pct FrmPCT = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
unsigned int *pPCT;
struct aect *TS_AECT = (struct aect *) 0xF000;
char FrmAECT[8];
char *pAECT;
#endif