#include "realcnvt.h" /* converts TP 6-byte real to IEEE 8-byte real */ double pasrealtodouble(pasreal OldNum) { IEEEdouble NewNum; char Sign; int Exp; int X; for(X = 0; X < 2; X++) NewNum.byte[X] = 0x00; Sign = OldNum[5] & 0x80; Exp = OldNum[0] - 0x81 + 0x3FF; NewNum.byte[6] = (Exp << 4); NewNum.byte[7] = (Exp >> 4) | Sign; for(X = 5; X > 1; X--) { OldNum[X] <<= 1; OldNum[X] |= OldNum[X-1] >> 7; } OldNum[1] <<= 1; for(X = 6; X >= 2; X--) { NewNum.byte[X] |= OldNum[X-1] >> 4; NewNum.byte[X-1] = OldNum[X-1] << 4; } return(NewNum.value); }