home *** CD-ROM | disk | FTP | other *** search
-
- /* TMS5220 ROM Tables */
-
- /* This is the energy lookup table (4-bits -> 10-bits) */
-
- const unsigned short energytable[0x10] = {
- 0x0000, 0x00C0, 0x0140, 0x01C0, 0x0280, 0x0380, 0x0500, 0x0740,
- 0x0A00, 0x0E40, 0x1440, 0x1C80, 0x2840, 0x38C0, 0x5040, 0x7FC0
- };
-
- /* This is the pitch lookup table (6-bits -> 8-bits) */
-
- const unsigned short pitchtable[0x40] = {
- 0x0000, 0x1000, 0x1100, 0x1200, 0x1300, 0x1400, 0x1500, 0x1600,
- 0x1700, 0x1800, 0x1900, 0x1A00, 0x1B00, 0x1C00, 0x1D00, 0x1E00,
- 0x1F00, 0x2000, 0x2100, 0x2200, 0x2300, 0x2400, 0x2500, 0x2600,
- 0x2700, 0x2800, 0x2900, 0x2A00, 0x2B00, 0x2D00, 0x2F00, 0x3100,
- 0x3300, 0x3500, 0x3600, 0x3900, 0x3B00, 0x3D00, 0x3F00, 0x4200,
- 0x4500, 0x4700, 0x4900, 0x4D00, 0x4F00, 0x5100, 0x5500, 0x5700,
- 0x5C00, 0x5F00, 0x6300, 0x6600, 0x6A00, 0x6E00, 0x7300, 0x7700,
- 0x7B00, 0x8000, 0x8500, 0x8A00, 0x8F00, 0x9500, 0x9A00, 0xA000
- };
-
- /* These are the reflection coefficient lookup tables */
-
- /* K1 is (5-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k1table[0x20] = {
-
- (short) 0x82C0, (short) 0x8380, (short) 0x83C0, (short) 0x8440,
- (short) 0x84C0, (short) 0x8540, (short) 0x8600, (short) 0x8780,
- (short) 0x8880, (short) 0x8980, (short) 0x8AC0, (short) 0x8C00,
- (short) 0x8D40, (short) 0x8F00, (short) 0x90C0, (short) 0x92C0,
- (short) 0x9900, (short) 0xA140, (short) 0xAB80, (short) 0xB840,
- (short) 0xC740, (short) 0xD8C0, (short) 0xEBC0, 0x0000,
- 0x1440, 0x2740, 0x38C0, 0x47C0, 0x5480, 0x5EC0, 0x6700, 0x6D40
- };
-
- /* K2 is (5-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k2table[0x20] = {
-
- (short) 0xAE00, (short) 0xB480, (short) 0xBB80, (short) 0xC340,
- (short) 0xCB80, (short) 0xD440, (short) 0xDDC0, (short) 0xE780,
- (short) 0xF180, (short) 0xFBC0, 0x0600, 0x1040, 0x1A40, 0x2400, 0x2D40,
- 0x3600,
- 0x3E40, 0x45C0, 0x4CC0, 0x5300, 0x5880, 0x5DC0, 0x6240, 0x6640,
- 0x69C0, 0x6CC0, 0x6F80, 0x71C0, 0x73C0, 0x7580, 0x7700, 0x7E80
- };
-
- /* K3 is (4-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k3table[0x10] = {
-
- (short) 0x9200, (short) 0x9F00, (short) 0xAD00, (short) 0xBA00,
- (short) 0xC800, (short) 0xD500, (short) 0xE300, (short) 0xF000,
- (short) 0xFE00, 0x0B00, 0x1900, 0x2600, 0x3400, 0x4100, 0x4F00, 0x5C00
- };
-
- /* K4 is (4-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k4table[0x10] = {
-
- (short) 0xAE00, (short) 0xBC00, (short) 0xCA00, (short) 0xD800,
- (short) 0xE600, (short) 0xF400, 0x0100, 0x0F00,
- 0x1D00, 0x2B00, 0x3900, 0x4700, 0x5500, 0x6300, 0x7100, 0x7E00
- };
-
- /* K5 is (4-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k5table[0x10] = {
-
- (short) 0xAE00, (short) 0xBA00, (short) 0xC500, (short) 0xD100,
- (short) 0xDD00, (short) 0xE800, (short) 0xF400, (short) 0xFF00,
- 0x0B00, 0x1700, 0x2200, 0x2E00, 0x3900, 0x4500, 0x5100, 0x5C00
- };
-
- /* K6 is (4-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k6table[0x10] = {
-
- (short) 0xC000, (short) 0xCB00, (short) 0xD600, (short) 0xE100,
- (short) 0xEC00, (short) 0xF700, 0x0300, 0x0E00,
- 0x1900, 0x2400, 0x2F00, 0x3A00, 0x4500, 0x5000, 0x5B00, 0x6600
- };
-
- /* K7 is (4-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k7table[0x10] = {
-
- (short) 0xB300, (short) 0xBF00, (short) 0xCB00, (short) 0xD700,
- (short) 0xE300, (short) 0xEF00, (short) 0xFB00, 0x0700,
- 0x1300, 0x1F00, 0x2B00, 0x3700, 0x4300, 0x4F00, 0x5A00, 0x6600
- };
-
- /* K8 is (3-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k8table[0x08] = {
-
- (short) 0xC000, (short) 0xD800, (short) 0xF000, 0x0700, 0x1F00,
- 0x3700, 0x4F00, 0x6600
- };
-
- /* K9 is (3-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k9table[0x08] = {
-
- (short) 0xC000, (short) 0xD400, (short) 0xE800, (short) 0xFC00,
- 0x1000, 0x2500, 0x3900, 0x4D00
- };
-
- /* K10 is (3-bits -> 9 bits+sign, 2's comp. fractional (-1 < x < 1) */
-
- const short k10table[0x08] = {
-
- (short) 0xCD00, (short) 0xDF00, (short) 0xF100, 0x0400, 0x1600,
- 0x2000, 0x3B00, 0x4D00
- };
-
- /* chirp table */
-
- static char chirptable[41] = {
- 0x00, 0x2a, (char) 0xd4, 0x32,
- (char) 0xb2, 0x12, 0x25, 0x14,
- 0x02, (char) 0xe1, (char) 0xc5, 0x02,
- 0x5f, 0x5a, 0x05, 0x0f,
- 0x26, (char) 0xfc, (char) 0xa5, (char) 0xa5,
- (char) 0xd6, (char) 0xdd, (char) 0xdc, (char) 0xfc,
- 0x25, 0x2b, 0x22, 0x21,
- 0x0f, (char) 0xff, (char) 0xf8, (char) 0xee,
- (char) 0xed, (char) 0xef, (char) 0xf7, (char) 0xf6,
- (char) 0xfa, 0x00, 0x03, 0x02,
- 0x01
- };
-
- /* interpolation coefficients */
-
- static char interp_coeff[8] = {
- 8, 8, 8, 4, 4, 2, 2, 1
- };
-