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