00001 // RC 4/24/2002 \HRandy95\Include\Flip.h 00002 00003 #define __FLIP_H 00004 00005 #ifndef __DATATYPE_H 00006 #include "DataType.h" 00007 #endif 00008 00009 inline void FlipShort( SHORT *short_ptr ) /* Flip bytes in short from 68000 to 8088 */ 00010 { 00011 #ifndef _MAC 00012 short tmp; 00013 00014 tmp = (((*short_ptr << 8) & 0xFF00) | ((*short_ptr>>8) & 0xFF)); 00015 *short_ptr = tmp; 00016 #endif 00017 } 00018 00019 inline void FlipLong( LONG *long_ptr ) /* Flip bytes in long from 68000 to 8088 */ 00020 { 00021 #ifndef _MAC 00022 LONG tmp; 00023 00024 tmp = (((*long_ptr&0xFFL) << 24) | ((*long_ptr & 0xFF00L) << 8) | 00025 ((*long_ptr & 0xFF0000L) >> 8) | ((*long_ptr >> 24) & 0xFFL)); 00026 *long_ptr=tmp; 00027 #endif 00028 } 00029 00030 inline void FlipShort68k( short *short_ptr ) 00031 { 00032 #ifdef _MAC 00033 short tmp; 00034 00035 tmp = (((*short_ptr << 8) & 0xFF00) | ((*short_ptr>>8) & 0xFF)); 00036 *short_ptr = tmp; 00037 #endif 00038 } 00039 00040 inline void FlipLong68k( long *long_ptr ) 00041 { 00042 #ifdef _MAC 00043 LONG tmp; 00044 00045 tmp = (((*long_ptr&0xFFL) << 24) | ((*long_ptr & 0xFF00L) << 8) | 00046 ((*long_ptr & 0xFF0000L) >> 8) | ((*long_ptr >> 24) & 0xFFL)); 00047 *long_ptr=tmp; 00048 #endif 00049 } 00050 00051 inline void ReverseBytes(void *v, int size) 00052 { 00053 #ifdef _MAC 00054 UBYTE buffer[8]; 00055 UBYTE *s = (UBYTE *) v; 00056 00057 int i; 00058 for ( i = 0; i < size; i++) 00059 buffer[i] = s[size-i-1]; 00060 00061 for (i=0; i<size; i++) 00062 s[i] = buffer[i]; 00063 #endif 00064 } 00065 00066 inline void FlipDouble68k( double *double_ptr ) 00067 { 00068 #ifdef _MAC 00069 ReverseBytes(double_ptr, 8); 00070 #endif 00071 } 00072 00073 inline void FlipLongBits( ULONG *ptr ) 00074 { 00075 #ifdef _MAC 00076 ULONG newptr = 0; 00077 for (int i = 0; i < 32; i++) 00078 if (*ptr & (1 << i)) 00079 newptr |= (1 << (31-i)); 00080 *ptr = newptr; 00081 #endif 00082 } 00083
Generated on Thu Oct 27 11:46:43 2005 with
1.4.5 written by Dimitri van Heesch,
© 1997-2001