source: buchla-68k/lib700/micons.c@ 7258c6a

Last change on this file since 7258c6a was 7258c6a, checked in by Thomas Lopatic <thomas@…>, 7 years ago

Use standard integer types.

  • Property mode set to 100644
File size: 2.3 KB
Line 
1/*
2 =============================================================================
3 micons.c -- motorola / intel format conversion functions
4 Version 3 -- 1987-06-11 -- D.N. Lynx Crowe
5
6 short
7 micons(wi)
8 short wi;
9
10 Convert between motorola and intel format for a short.
11
12 int
13 miconi(wi)
14 int wi;
15
16 Convert between motorola and intel format for an int.
17
18 long
19 miconl(wi)
20 long wi;
21
22 Convert between motorola and intel format for a long.
23 =============================================================================
24*/
25
26#define TESTER 0 /* define non-zero for a test program */
27
28/*
29 */
30
31/*
32 =============================================================================
33 micons(wi) -- Convert between motorola and intel format for a short.
34 =============================================================================
35*/
36
37int16_t micons(int16_t wi)
38{
39 return((int16_t)( ((wi << 8) & 0xFF00) | ((wi >> 8) & 0x00FF) ) );
40}
41
42/*
43 =============================================================================
44 miconi(wi) -- Convert between motorola and intel format for an int.
45 =============================================================================
46*/
47
48int16_t miconi(int16_t wi)
49{
50 if (sizeof (int16_t) == 4)
51 return( ((wi << 24) & 0xFF000000L) | ((wi << 8) & 0x00FF0000L) |
52 ((wi >> 8) & 0x0000FF00L) | ((wi >> 24) & 0x000000FFL) );
53 else
54 return(((wi << 8) & 0xFF00) | ((wi >> 8) & 0x00FF));
55}
56
57/*
58 =============================================================================
59 miconl(wi) -- Convert between motorola and intel format for a long.
60 =============================================================================
61*/
62
63int32_t miconl(int32_t wi)
64{
65 return( ((wi << 24) & 0xFF000000L) | ((wi << 8) & 0x00FF0000L) |
66 ((wi >> 8) & 0x0000FF00L) | ((wi >> 24) & 0x000000FFL) );
67}
68
69/*
70 */
71
72#if TESTER
73
74#include "stdio.h"
75
76/*
77 =============================================================================
78 test program for micon functions
79 =============================================================================
80*/
81
82main()
83{
84 printf("micons(0x1234) returned 0x%04x\n", micons(0x1234));
85
86 if (sizeof (int) == 4)
87 printf("miconi(0x1234) returned 0x%04x\n", miconi(0x1234));
88 else
89 printf("miconi(0x12345678L) returned 0x%08lx\n",
90 miconi(0x12345678L));
91
92 printf("miconl(0x12345678L) returned 0x%08lx\n",
93 miconl(0x12345678L));
94}
95
96#endif
Note: See TracBrowser for help on using the repository browser.