/* lthresh.c -- turn "LTHRESH.DAT" into patch commands */ #include void main() { FILE *fi,*fo; char s[80]; unsigned char out[22],*p; int data,trig,chan,thresh; int ea,eb,ec,ed,ecra,ecrb,ecrc,ecrd,andor; int addr,i; fi = fopen("LTHRESH.DAT","r"); fo = fopen("lthresh.prc","w"); p = out; /* Lightning Threshholds */ fgets(s,80,fi); printf("%s",s); /* Comparator A */ fgets(s,80,fi); printf("%s",s); /* 0 0=trig if GT, 1=trig if LE */ fgets(s,80,fi); sscanf(s,"%d",&trig); /* 1 SP channel to use (1..6) */ fgets(s,80,fi); sscanf(s,"%d",&chan); /* 255 Threshhold (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&thresh); data = (trig<<15) + (chan<<12) + thresh; *(p++) = data>>8; *(p++) = data; /* Comparator B */ fgets(s,80,fi); printf("%s",s); /* 0 0=trig if GT, 1=trig if LE */ fgets(s,80,fi); sscanf(s,"%d",&trig); /* 1 SP channel to use (1..6) */ fgets(s,80,fi); sscanf(s,"%d",&chan); /* 255 Threshhold (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&thresh); data = (trig<<15) + (chan<<12) + thresh; *(p++) = data>>8; *(p++) = data; /* Comparator C */ fgets(s,80,fi); printf("%s",s); /* 0 0=trig if GT, 1=trig if LE */ fgets(s,80,fi); sscanf(s,"%d",&trig); /* 1 SP channel to use (1..6) */ fgets(s,80,fi); sscanf(s,"%d",&chan); /* 255 Threshhold (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&thresh); data = (trig<<15) + (chan<<12) + thresh; *(p++) = data>>8; *(p++) = data; /* Comparator D */ fgets(s,80,fi); printf("%s",s); /* 0 0=trig if GT, 1=trig if LE */ fgets(s,80,fi); sscanf(s,"%d",&trig); /* 1 SP channel to use (1..6) */ fgets(s,80,fi); sscanf(s,"%d",&chan); /* 255 Threshhold (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&thresh); data = (trig<<15) + (chan<<12) + thresh; *(p++) = data>>8; *(p++) = data; /* Cosmic Ray Threshholds */ fgets(s,80,fi); printf("%s",s); /* 255 SP1 (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&data); *(p++) = data>>8; *(p++) = data; /* 255 SP2 (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&data); *(p++) = data>>8; *(p++) = data; /* 255 SP3 (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&data); *(p++) = data>>8; *(p++) = data; /* 255 SP4 (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&data); *(p++) = data>>8; *(p++) = data; /* 255 SP5 (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&data); *(p++) = data>>8; *(p++) = data; /* 255 SP6 (0..8191) */ fgets(s,80,fi); sscanf(s,"%d",&data); *(p++) = data>>8; *(p++) = data; /* Lightning Detect Control */ fgets(s,80,fi); printf("%s",s); /* 1 1=Enable Comparator A */ fgets(s,80,fi); sscanf(s,"%d",&ea); /* 1 1=Enable Comparator B */ fgets(s,80,fi); sscanf(s,"%d",&eb); /* 1 1=Enable Comparator C */ fgets(s,80,fi); sscanf(s,"%d",&ec); /* 1 1=Enable Comparator D */ fgets(s,80,fi); sscanf(s,"%d",&ed); /* 1 1=Trigger is AND of enabled comparators; 0=OR */ fgets(s,80,fi); sscanf(s,"%d",&andor); /* 1 1=Ignore CR detect for Comparator A */ fgets(s,80,fi); sscanf(s,"%d",&ecra); /* 1 1=Ignore CR detect for Comparator B */ fgets(s,80,fi); sscanf(s,"%d",&ecrb); /* 1 1=Ignore CR detect for Comparator C */ fgets(s,80,fi); sscanf(s,"%d",&ecrc); /* 1 1=Ignore CR detect for Comparator D */ fgets(s,80,fi); sscanf(s,"%d",&ecrd); data=(andor<<8)+(ecrd<<7)+(ecrc<<6)+(ecrb<<5)+(ecra<<4); data=data+(ed<<3)+(ec<<2)+(eb<<1)+ea; *(p++)=data>>8; *(p++)=data; /* make STOL */ /* SP_LD_TH_A */ p=out; addr=0xAE51; for(i=0;i<10;++i) { fprintf(fo,"/I_PATCH2 BANK=0 ADDR=X'%04X' DATA=X'%02X%02X'\n", addr,(int)p[0],(int)p[1]); addr+=2; p+=2; } /* SP_LD_CTRL */ addr=0xAE65; for(i=0;i<1;++i) { fprintf(fo,"/I_PATCH2 BANK=0 ADDR=X'%04X' DATA=X'%02X%02X'\n", addr,(int)p[0],(int)p[1]); addr+=2; p+=2; } fclose(fi); fclose(fo); printf("wrote STOL file -- LTHRESH.PRC\n"); }