ariareg.h revision 1.1 1 1.1 augustss /*
2 1.1 augustss * Copyright (c) 1995, 1996 Roland C. Dowdeswell. All rights reserved.
3 1.1 augustss *
4 1.1 augustss * Redistribution and use in source and binary forms, with or without
5 1.1 augustss * modification, are permitted provided that the following conditions
6 1.1 augustss * are met:
7 1.1 augustss * 1. Redistributions of source code must retain the above copyright
8 1.1 augustss * notice, this list of conditions and the following disclaimer.
9 1.1 augustss * 2. Redistributions in binary form must reproduce the above copyright
10 1.1 augustss * notice, this list of conditions and the following disclaimer in the
11 1.1 augustss * documentation and/or other materials provided with the distribution.
12 1.1 augustss * 3. All advertising materials mentioning features or use of this software
13 1.1 augustss * must display the following acknowledgement:
14 1.1 augustss * This product includes software developed by Roland C. Dowdeswell.
15 1.1 augustss * 4. The name of the authors may not be used to endorse or promote products
16 1.1 augustss * derived from this software without specific prior written permission.
17 1.1 augustss *
18 1.1 augustss * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
19 1.1 augustss * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20 1.1 augustss * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21 1.1 augustss * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT,
22 1.1 augustss * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23 1.1 augustss * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 1.1 augustss * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 1.1 augustss * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 1.1 augustss * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 1.1 augustss * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 1.1 augustss */
29 1.1 augustss
30 1.1 augustss /*
31 1.1 augustss * Macros to detect valid hardware configuration data.
32 1.1 augustss */
33 1.1 augustss #define ARIA_IRQ_VALID(irq) ((irq) == 10 || (irq) == 11 || (irq) == 12)
34 1.1 augustss #define ARIA_DRQ_VALID(chan) ((chan) == 5 || (chan) == 6)
35 1.1 augustss #define ARIA_BASE_VALID(base) ((base) == 0x290 || (base) == 0x280 || (base) == 0x2a0 || (base) == 0x2b0)
36 1.1 augustss
37 1.1 augustss /*
38 1.1 augustss * Aria DSP ports
39 1.1 augustss * (abrieviated ARIADSP_)
40 1.1 augustss */
41 1.1 augustss
42 1.1 augustss #define ARIADSP_NPORT 8
43 1.1 augustss
44 1.1 augustss #define ARIADSP_DSPDATA 0
45 1.1 augustss #define ARIADSP_WRITE 0
46 1.1 augustss #define ARIADSP_STATUS 2
47 1.1 augustss #define ARIADSP_CONTROL 2
48 1.1 augustss #define ARIADSP_DMAADDRESS 4
49 1.1 augustss #define ARIADSP_DMADATA 6
50 1.1 augustss
51 1.1 augustss /*
52 1.1 augustss * Aria DSP Addresses and the like...
53 1.1 augustss * (abrieviated ARIAA_)
54 1.1 augustss */
55 1.1 augustss
56 1.1 augustss #define ARIAA_HARDWARE_A 0x6050
57 1.1 augustss #define ARIAA_MODEL_A 0x60c3
58 1.1 augustss #define ARIAA_PLAY_FIFO_A 0x6100
59 1.1 augustss #define ARIAA_REC_FIFO_A 0x6101
60 1.1 augustss #define ARIAA_TASK_A 0x6102
61 1.1 augustss
62 1.1 augustss /*
63 1.1 augustss * DSP random values
64 1.1 augustss * (abrieviated ARIAR_)
65 1.1 augustss */
66 1.1 augustss
67 1.1 augustss #define ARIAR_PROMETHEUS_KLUDGE 0x0001
68 1.1 augustss #define ARIAR_NPOLL 30000
69 1.1 augustss #define ARIAR_OPEN_PLAY 0x0002
70 1.1 augustss #define ARIAR_OPEN_RECORD 0x0001
71 1.1 augustss #define ARIAR_PLAY_CHAN 1
72 1.1 augustss #define ARIAR_RECORD_CHAN 0
73 1.1 augustss #define ARIAR_BUSY 0x8000
74 1.1 augustss #define ARIAR_ARIA_SYNTH 0x0080
75 1.1 augustss #define ARIAR_SR22K 0x0040
76 1.1 augustss #define ARIAR_DSPINTWR 0x0008
77 1.1 augustss #define ARIAR_PCINTWR 0x0002
78 1.1 augustss
79 1.1 augustss /*
80 1.1 augustss * Aria DSP Commands
81 1.1 augustss * (abrieviated ARIADSPC_)
82 1.1 augustss */
83 1.1 augustss
84 1.1 augustss #define ARIADSPC_SYSINIT 0x0000 /* Initialise system */
85 1.1 augustss #define ARIADSPC_FORMAT 0x0003 /* format (pcm8, pcm16, etc) */
86 1.1 augustss #define ARIADSPC_MASTERVOLUME 0x0004
87 1.1 augustss #define ARIADSPC_BLOCKSIZE 0x0005
88 1.1 augustss #define ARIADSPC_MODE 0x0006
89 1.1 augustss #define ARIADSPC_CDVOLUME 0x0007
90 1.1 augustss #define ARIADSPC_MICVOLUME 0x0008
91 1.1 augustss #define ARIADSPC_MIXERCONFIG 0x0009
92 1.1 augustss #define ARIADSPC_FORCEINTR 0x000a /* Force an Interupt */
93 1.1 augustss #define ARIADSPC_TRANSCOMPLETE 0x0010 /* Transfer Complete */
94 1.1 augustss #define ARIADSPC_START_PLAY 0x0011
95 1.1 augustss #define ARIADSPC_STOP_PLAY 0x0012
96 1.1 augustss #define ARIADSPC_CHAN_VOL 0x0013
97 1.1 augustss #define ARIADSPC_CHAN_PAN 0x0014
98 1.1 augustss #define ARIADSPC_START_REC 0x0015
99 1.1 augustss #define ARIADSPC_STOP_REC 0x0016
100 1.1 augustss #define ARIADSPC_DAPVOL 0x0017 /* Digital Audio Playback Vol */
101 1.1 augustss #define ARIADSPC_ADCSOURCE 0x0030
102 1.1 augustss #define ARIADSPC_ADCCONTROL 0x0031 /* Turn ADC off/on */
103 1.1 augustss #define ARIADSPC_INPMONMODE 0x0032 /* Input Monitor Mode */
104 1.1 augustss #define ARIADSPC_MASMONMODE 0x0033 /* Master Monitor Mode */
105 1.1 augustss #define ARIADSPC_MIXERVOL 0x0034 /* Mixer Volumes */
106 1.1 augustss #define ARIADSPC_TONE 0x0035 /* Tone controls */
107 1.1 augustss #define ARIADSPC_TERM 0xffff /* End of Command */
108 1.1 augustss
109 1.1 augustss /*
110 1.1 augustss * DSP values (for commands)
111 1.1 augustss * (abrieviated ARIAV_)
112 1.1 augustss */
113 1.1 augustss
114 1.1 augustss #define ARIAV_MODE_NO_SYNTH 0x0000 /* No synthesizer mode */
115 1.1 augustss
116 1.1 augustss #define ARIAMIX_MIC_LVL 0
117 1.1 augustss #define ARIAMIX_LINE_IN_LVL 1
118 1.1 augustss #define ARIAMIX_CD_LVL 2
119 1.1 augustss #define ARIAMIX_DAC_LVL 3
120 1.1 augustss #define ARIAMIX_TEL_LVL 4
121 1.1 augustss #define ARIAMIX_AUX_LVL 5
122 1.1 augustss #define ARIAMIX_MASTER_LVL 6
123 1.1 augustss #define ARIAMIX_MASTER_TREBLE 7
124 1.1 augustss #define ARIAMIX_MASTER_BASS 8
125 1.1 augustss #define ARIAMIX_RECORD_SOURCE 9
126 1.1 augustss #define ARIAMIX_MIC_MUTE 10
127 1.1 augustss #define ARIAMIX_LINE_IN_MUTE 11
128 1.1 augustss #define ARIAMIX_CD_MUTE 12
129 1.1 augustss #define ARIAMIX_DAC_MUTE 13
130 1.1 augustss #define ARIAMIX_TEL_MUTE 14
131 1.1 augustss #define ARIAMIX_AUX_MUTE 15
132 1.1 augustss #define ARIAMIX_OUT_LVL 16
133 1.1 augustss #define ARIAMIX_OUTPUT_CLASS 17
134 1.1 augustss #define ARIAMIX_INPUT_CLASS 18
135 1.1 augustss #define ARIAMIX_RECORD_CLASS 19
136 1.1 augustss #define ARIAMIX_EQ_CLASS 20
137