home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Examples / DriverKit / ProAudioSpectrum16 / ProAudioSpectrum16_reloc.tproj / ProAudioSpectrum16Registers.h < prev   
Text File  |  1996-03-27  |  5KB  |  216 lines

  1. /* 
  2.  * Copyright (c) 1993-1996 NeXT Software, Inc.  All rights reserved. 
  3.  */
  4.  
  5. #define MASTER_ADDRESS_POINTER    0x9a01
  6. #define FIRST_BOARD_ID        0xbc
  7. #define DEFAULT_BASE_ADDRESS    0x0388
  8.  
  9. #define AUDIO_MIXER        0x0B88
  10. #define AUDIO_MIXER_RESET    0x17
  11.  
  12. #define MIXER_CONTROL        0x78b
  13.  
  14. typedef struct    {
  15.     unsigned char    selectAddress            :5,
  16. #define MIXER_A_MASTER                1  // Output Mixer
  17. #define MIXER_B_MASTER                2  // Input Mixer
  18. #define BASS_CONTROL                3
  19. #define TREBLE_CONTROL                4
  20. #define MASTER_MODE_CONTROL            5  // Loudness Filter
  21.                            // Stereo Enhance
  22.  
  23. #define FM_SYNTHESIS                16 // FM synthesis (B)
  24. #define INPUT_MIXER_LOOPBACK            17 // Input Mixer Loopback (A)
  25. #define EXTERNAL_LINE_IN            18 // External Line In (B)
  26. #define INTERNAL_LINE_IN            19 // Internal Line In (B)
  27. #define MICROPHONE                20 // Microphone (B)
  28. #define PCM                    21 // PCM (A)
  29. #define SPEAKER                    22 // record the speaker (B)
  30. #define SOUNDBLASTER                23 // SoundBlaster (B)
  31.                 selectChannel            :2,
  32. #define BOTH_CHANNELS                0
  33. #define LEFT_CHANNEL                1
  34. #define RIGHT_CHANNEL                2
  35.             isTransfer            :1;
  36. } channelSelection_t;
  37.  
  38. typedef struct {
  39.     unsigned char    attenuation            :5,
  40. #define MAXIMUM_ATTENUATION            0
  41.                 routeChannel            :1,
  42. #define MIXER_A_ROUTE                0
  43. #define MIXER_B_ROUTE                1
  44.             swapChannels            :2;
  45. #define NORMAL_STEREO                0
  46. } channelAttenuation_t;
  47.  
  48. typedef unsigned char    masterAttenuation_t;
  49. typedef unsigned char    masterBassTrebleControl_t;
  50.  
  51. typedef struct {
  52.     unsigned char    stereoEnhance            :2,
  53.                 loudnessFilter            :1,
  54.             reserved            :5;
  55. } masterModeControl_t;
  56.  
  57. #define DEFAULT_MASTER_OUTPUT_ATTENUATION    48
  58. #define DEFAULT_MASTER_INPUT_ATTENUATION    15
  59. #define DEFAULT_OUTPUT_ATTENUATION        27
  60. #define DEFAULT_INPUT_ATTENUATION        27
  61. #define DEFAULT_MICROPHONE_ATTENUATION        30
  62. #define MUTE                    0
  63.  
  64. #define DEFAULT_BASS_BOOST            0x06    // 0 dB
  65. #define DEFAULT_TREBLE_BOOST            0x06    // 0 dB
  66.  
  67. #define FILTER_CONTROL        0xb8a
  68.  
  69. typedef struct {
  70.     unsigned char    filter                :5,
  71.                 enableAudioOutput        :1,
  72.             enableSampleRateTimer        :1,
  73.             enableSampleBufferCounter    :1;
  74. } filterControl_t;
  75.  
  76.  
  77. #define INTERRUPT_CONTROL    0xb8b
  78.  
  79. typedef struct {
  80.     unsigned char    enableLeftFMInterrupt        :1,
  81.                 enableRightFMInterrupt        :1,
  82.             enableSampleRateInterrupt    :1,
  83.             enableSampleBufferInterrupt    :1,
  84.             enableMIDIInterrupt        :1,
  85. #define PAS_SIXTEEN                1
  86. #define PAS_STUDIO                3
  87.             version                :3;
  88. } interruptControl_t;
  89.  
  90.  
  91. #define INTERRUPT_STATUS     0xb89
  92.  
  93. typedef struct {
  94.     unsigned char    LeftFMInterruptPending        :1,
  95.                 RightFMInterruptPending        :1,
  96.             sampleRateInterruptPending    :1,
  97.             sampleBufferInterruptPending    :1,
  98.             MIDIInterruptPending        :1,
  99.             channelActive            :1,
  100.             resetActive            :1,
  101.             sampleClippingOccurred        :1;
  102. } interruptStatus_t;
  103.  
  104.  
  105. #define CROSS_CHANNEL_CONTROL 0xf8a
  106.  
  107. typedef struct {
  108.     unsigned char    rightToRight            :1,
  109.                 leftToRight            :1,
  110.             rightToLeft            :1,
  111.             leftToLeft            :1,
  112.             direction            :1,
  113. #define INPUT_DIRECTION                0
  114. #define OUTPUT_DIRECTION            1
  115.             isMono                :1,
  116.             enablePCM            :1,
  117.             enableDMA            :1;
  118. } crossChannelControl_t;
  119.  
  120. #define SAMPLE_RATE_TIMER     0x1388
  121. typedef unsigned short sampleRateTimer_t;
  122. #define SAMPLE_RATE_CONSTANT     1193180
  123.  
  124. #define SAMPLE_BUFFER_COUNTER     0x1389
  125. typedef unsigned short sampleBufferCounter_t;
  126.  
  127. #define SAMPLE_COUNTER_CONTROL     0x138b
  128.  
  129. typedef struct {
  130.     unsigned char    countFormat            :1,
  131. #define BINARY_COUNT_FORMAT            0
  132.                 selectMode            :3,
  133. #define SAMPLE_BUFFER_MODE            2
  134. #define SAMPLE_RATE_MODE            3
  135.             latchCounter            :2,
  136.             selectCounter            :2;
  137. #define SAMPLE_RATE_COUNT            0
  138. #define SAMPLE_BUFFER_COUNT            1
  139. } sampleCounterControl_t;
  140.  
  141. #define SYSTEM_CONFIGURATION_1        0x8388
  142.  
  143. typedef struct {
  144.     unsigned char    reserved            :1,
  145.                 selectCompatibleClock        :1,
  146.             reserved1            :6;
  147. } systemConfiguration1_t;
  148.  
  149. #define SYSTEM_CONFIGURATION_2        0x8389
  150. #define SYSTEM_CONFIGURATION_2_RESET    0x0
  151.  
  152. typedef struct {
  153.     unsigned char    overSampling            :2,
  154. #define OVER_SAMPLING_1X            0
  155. #define OVER_SAMPLING_2X            1
  156. #define OVER_SAMPLING_4X            3
  157.                 dataEncoding            :1,
  158. #define LINEAR_8                0
  159. #define LINEAR_16                1
  160.             reserved            :5;
  161. } systemConfiguration2_t;
  162.  
  163.  
  164. #define SYSTEM_CONFIGURATION_3        0x838a
  165. #define SYSTEM_CONFIGURATION_3_RESET    0x19        // 0x18
  166.  
  167. #define SYSTEM_CONFIGURATION_4        0x838b
  168. #define SYSTEM_CONFIGURATION_4_RESET    0x68
  169.             
  170. #define PRESCALE_DIVIDER        0xbf8a    
  171. #define PRESCALE_DIVIDER_RESET        0x08
  172.  
  173. #define WAIT_STATE              0xbf88
  174. #define WAIT_STATE_RESET         0x01    
  175.  
  176.  
  177. #define DMA_CHANNEL_CONFIGURATION    0xf389
  178.  
  179. typedef struct {
  180.     unsigned char    channel                :3,
  181. #define DMA_CHANNEL_NONE            0
  182. #define DMA_CHANNEL_1                1
  183. #define DMA_CHANNEL_2                2
  184. #define DMA_CHANNEL_3                3
  185. #define DMA_CHANNEL_0                4
  186. #define DMA_CHANNEL_5                5
  187. #define DMA_CHANNEL_6                6
  188. #define DMA_CHANNEL_7                7
  189.             reserved            :5;
  190. } DMAChannelConfiguration_t;
  191.  
  192.  
  193. #define IRQ_CONFIGURATION     0xf38A
  194.  
  195. typedef struct {
  196.     unsigned char    interrupt            :4,
  197. #define INTERRUPT_NONE                0
  198. #define INTERRUPT_2                1
  199. #define INTERRUPT_3                2
  200. #define INTERRUPT_4                3
  201. #define INTERRUPT_5                4
  202. #define INTERRUPT_6                5
  203. #define INTERRUPT_7                6
  204. #define INTERRUPT_10                7
  205. #define INTERRUPT_11                8
  206. #define INTERRUPT_12                9
  207. #define INTERRUPT_14                10
  208. #define INTERRUPT_15                11
  209.             reserved            :4;
  210. } IRQConfiguration_t;
  211.  
  212. #define COMPATIBILITY_ENABLE    0xf788
  213.  
  214. #define EMULATION_CONFIGURATION    0xfb8a
  215.  
  216.