#include #include #include #include #include /*----------------------------------------------*/ int bit_(bitnum,word) int *bitnum; int *word; { int bit; bit = findit(bitnum,word); return(bit); } /*----------------------------------------------*/ int findit(bitnum,word) int *bitnum; int *word; { int bit=0; static int flag = 0; static int ifirst = 0; #define mask7 (1<<7) char wrd0=0; char wrd1=0; char wrd2=0; char wrd3=0; wrd3 = *word >> 24; wrd2 = *word >> 16; if((flag != 1) && (ifirst != 1)) { if(wrd3 == 0 && wrd2 == 0 && *word < 50000) { flag = 1; } } if(flag == 1) { wrd1=*word >>8; wrd0=*word & 0x0ff; *bitnum = 15; } else { ifirst=1; *bitnum = 31; wrd2 = wrd2 & 0x0ff; wrd1 = *word >> 8; wrd1 = wrd1 & 0x0ff; wrd0 = *word & 0x0ff; } switch (*bitnum) { case 15: if((wrd1 & mask7) != 0) { bit=1; } break; case 31: if((wrd3 & mask7) != 0) { bit=1; } break; } return(bit); } /*----------------------------------------------*/ void setbit_(bitnum,word,msbit) int *bitnum; int *word; int *msbit; { #define mask0 (1<<0) static int flag = 0; static int mode = 0; if(flag != 1) { if(*word > 99999) { mode = 32; } flag = 1; } if(*msbit > 0) { if((*word & mask0) == 0) { *word |= mask0; } } else { if((*word & mask0) != 0) { *word &= ~mask0; } } if(mode == 0) { *word=*word & 0x0ffff; } } /*----------------------------------------------*/ void syserr (msg) char *msg; { extern int errno,sys_nerr; extern char *sys_errlist[]; fprintf (stderr," ERROR:%s,(%d",msg,errno); if (errno>0 && errno