source: buchla-68k/lib700/bitrev.c@ e877e55

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

Zero redundant declarations.

  • Property mode set to 100644
File size: 911 bytes
RevLine 
[f40a309]1/*
2 =============================================================================
3 bitrev.c -- bit reverse function
4 Version 1 -- 1987-03-24 -- D.N. Lynx Crowe
5 =============================================================================
6*/
7
[b28a12e]8#include "ram.h"
[6262b5c]9
[7258c6a]10static int16_t bitmask[] = {
[f40a309]11
12 0x0001, 0x0002, 0x0004, 0x0008,
13 0x0010, 0x0020, 0x0040, 0x0080,
14 0x0100, 0x0200, 0x0400, 0x0800,
15 0x1000, 0x2000, 0x4000, 0x8000
16};
17
18/*
19 =============================================================================
20 bitrev(bitsin, nbits) -- reverses the rightmost nbits of bitsin.
21
22 Any bits to the left of the reversed bits in the result will be zeros.
23 =============================================================================
24*/
25
[7258c6a]26int16_t bitrev(int16_t bitsin, int16_t nbits)
[f40a309]27{
[7258c6a]28 int16_t m, n;
[f40a309]29
30 n = 0;
31
32 for (m = 0; m < nbits; m++)
33 if (bitsin & bitmask[m])
34 n |= bitmask[nbits-1-m];
35
36 return(n);
37}
38
Note: See TracBrowser for help on using the repository browser.