/* ============================================================================= micons.c -- motorola / intel format conversion functions Version 3 -- 1987-06-11 -- D.N. Lynx Crowe short micons(wi) short wi; Convert between motorola and intel format for a short. int miconi(wi) int wi; Convert between motorola and intel format for an int. long miconl(wi) long wi; Convert between motorola and intel format for a long. ============================================================================= */ #include "ram.h" #define TESTER 0 /* define non-zero for a test program */ /* ============================================================================= micons(wi) -- Convert between motorola and intel format for a short. ============================================================================= */ int16_t micons(int16_t wi) { return((int16_t)( ((wi << 8) & 0xFF00) | ((wi >> 8) & 0x00FF) ) ); } /* ============================================================================= miconi(wi) -- Convert between motorola and intel format for an int. ============================================================================= */ int16_t miconi(int16_t wi) { if (sizeof (int16_t) == 4) return( ((wi << 24) & 0xFF000000L) | ((wi << 8) & 0x00FF0000L) | ((wi >> 8) & 0x0000FF00L) | ((wi >> 24) & 0x000000FFL) ); else return(((wi << 8) & 0xFF00) | ((wi >> 8) & 0x00FF)); } /* ============================================================================= miconl(wi) -- Convert between motorola and intel format for a long. ============================================================================= */ int32_t miconl(int32_t wi) { return( ((wi << 24) & 0xFF000000L) | ((wi << 8) & 0x00FF0000L) | ((wi >> 8) & 0x0000FF00L) | ((wi >> 24) & 0x000000FFL) ); } #if TESTER #include "ram.h" /* ============================================================================= test program for micon functions ============================================================================= */ main() { printf("micons(0x1234) returned 0x%04x\n", micons(0x1234)); if (sizeof (int) == 4) printf("miconi(0x1234) returned 0x%04x\n", miconi(0x1234)); else printf("miconi(0x12345678L) returned 0x%08lx\n", miconi(0x12345678L)); printf("miconl(0x12345678L) returned 0x%08lx\n", miconl(0x12345678L)); } #endif