mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-22 04:31:30 +00:00
58 lines
1002 B
C
58 lines
1002 B
C
/*
|
|
File: EndianAware.h
|
|
|
|
Contains: macros for 68K clients that are aware of platform endian-ness
|
|
|
|
Written by: Craig Prouse
|
|
|
|
Copyright: © 1993 by Apple Computer, Inc., all rights reserved.
|
|
|
|
Change History (most recent first):
|
|
|
|
<SM2> 12/1/93 chp Give inline functions external C linkage to make #pragma
|
|
parameter work in C++ builds.
|
|
<SM1> 11/10/93 fau first checked in
|
|
|
|
*/
|
|
|
|
#ifndef __ENDIANAWARE__
|
|
#define __ENDIANAWARE__
|
|
|
|
#ifndef littleEndian
|
|
#define littleEndian 1
|
|
#endif
|
|
|
|
|
|
#if littleEndian
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#pragma parameter __D0 EndianSwap16 (__D0)
|
|
unsigned short EndianSwap16 (unsigned short) =
|
|
{
|
|
0xE158 // ROL.W #8,D0
|
|
};
|
|
|
|
#pragma parameter __D0 EndianSwap32 (__D0)
|
|
unsigned long EndianSwap32 (unsigned long) =
|
|
{
|
|
0xE158, // ROL.W #8,D0
|
|
0x4840, // SWAP D0
|
|
0xE158 // ROL.W #8,D0
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#else
|
|
|
|
#define EndianSwap16(a) (a)
|
|
#define EndianSwap32(a) (a)
|
|
|
|
#endif litteEndian
|
|
|
|
#endif __ENDIANAWARE__
|