[BACK]Return to oplreg.h CVS log [TXT][DIR] Up to [local] / sys / dev / ic

Annotation of sys/dev/ic/oplreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: oplreg.h,v 1.1 1999/01/02 00:02:40 niklas Exp $       */
        !             2: /*     $NetBSD: oplreg.h,v 1.3 1998/11/25 22:17:06 augustss Exp $      */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1997 The NetBSD Foundation, Inc.
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * This code is derived from software contributed to The NetBSD Foundation
        !             9:  * by Lennart Augustsson (augustss@netbsd.org).
        !            10:  *
        !            11:  * Redistribution and use in source and binary forms, with or without
        !            12:  * modification, are permitted provided that the following conditions
        !            13:  * are met:
        !            14:  * 1. Redistributions of source code must retain the above copyright
        !            15:  *    notice, this list of conditions and the following disclaimer.
        !            16:  * 2. Redistributions in binary form must reproduce the above copyright
        !            17:  *    notice, this list of conditions and the following disclaimer in the
        !            18:  *    documentation and/or other materials provided with the distribution.
        !            19:  * 3. All advertising materials mentioning features or use of this software
        !            20:  *    must display the following acknowledgement:
        !            21:  *        This product includes software developed by the NetBSD
        !            22:  *        Foundation, Inc. and its contributors.
        !            23:  * 4. Neither the name of The NetBSD Foundation nor the names of its
        !            24:  *    contributors may be used to endorse or promote products derived
        !            25:  *    from this software without specific prior written permission.
        !            26:  *
        !            27:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
        !            28:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
        !            29:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
        !            30:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
        !            31:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
        !            32:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
        !            33:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        !            34:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        !            35:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
        !            36:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            37:  * POSSIBILITY OF SUCH DAMAGE.
        !            38:  */
        !            39:
        !            40: /* Offsets from base address */
        !            41: #define OPL_L                          0
        !            42: #define OPL_R                          2
        !            43:
        !            44: /* Offsets from base+[OPL_L|OPL_R] */
        !            45: #define OPL_STATUS                     0
        !            46: #define   OPL_STATUS_IRQ               0x80
        !            47: #define   OPL_STATUS_FT1               0x40
        !            48: #define   OPL_STATUS_FT2               0x20
        !            49: #define   OPL_STATUS_MASK              0xE0
        !            50: #define OPL_ADDR                       0
        !            51: #define OPL_DATA                       1
        !            52:
        !            53: #define OPL_TEST                       0x01
        !            54: #define   OPL_ENABLE_WAVE_SELECT       0x20
        !            55:
        !            56: #define OPL_TIMER1                     0x02
        !            57: #define OPL_TIMER2                     0x03
        !            58:
        !            59: #define OPL_TIMER_CONTROL              0x04    /* Left */
        !            60: #define   OPL_TIMER1_START             0x01
        !            61: #define   OPL_TIMER2_START             0x02
        !            62: #define   OPL_TIMER2_MASK              0x20
        !            63: #define   OPL_TIMER1_MASK              0x40
        !            64: #define   OPL_IRQ_RESET                        0x80
        !            65:
        !            66: #define OPL_CONNECTION_SELECT          0x04    /* Right */
        !            67: #define   OPL_NOCONNECTION             0x00
        !            68: #define   OPL_R_4OP_0                  0x01
        !            69: #define   OPL_R_4OP_1                  0x02
        !            70: #define   OPL_R_4OP_2                  0x04
        !            71: #define   OPL_L_4OP_0                  0x08
        !            72: #define   OPL_L_4OP_1                  0x10
        !            73: #define   OPL_L_4OP_2                  0x20
        !            74:
        !            75: #define OPL_MODE                       0x05    /* Right */
        !            76: #define   OPL3_ENABLE                  0x01
        !            77: #define   OPL4_ENABLE                  0x02
        !            78:
        !            79: #define OPL_KBD_SPLIT                  0x08    /* Left */
        !            80: #define   OPL_KEYBOARD_SPLIT           0x40
        !            81: #define   OPL_COMPOSITE_SINE_WAVE_MODE 0x80
        !            82:
        !            83: #define OPL_PERCUSSION                 0xbd    /* Left */
        !            84: #define   OPL_NOPERCUSSION             0x00
        !            85: #define   OPL_HIHAT                    0x01
        !            86: #define   OPL_CYMBAL                   0x02
        !            87: #define   OPL_TOMTOM                   0x04
        !            88: #define   OPL_SNAREDRUM                        0x08
        !            89: #define   OPL_BASSDRUM                 0x10
        !            90: #define          OPL_PERCUSSION_ENABLE         0x20
        !            91: #define   OPL_VIBRATO_DEPTH            0x40
        !            92: #define   OPL_TREMOLO_DEPTH            0x80
        !            93:
        !            94: /*
        !            95:  * Offsets to the register banks for operators.
        !            96:  */
        !            97: /* AM/VIB/EG/KSR/Multiple (0x20 to 0x35) */
        !            98: #define OPL_AM_VIB                     0x20
        !            99: #define   OPL_KSR                      0x10
        !           100: #define   OPL_SUSTAIN                  0x20
        !           101: #define   OPL_VIBRATO                  0x40
        !           102: #define   OPL_TREMOLO                  0x80
        !           103: #define   OPL_MULTIPLE_MASK            0x0f
        !           104:
        !           105: /* KSL/Total level (0x40 to 0x55) */
        !           106: #define OPL_KSL_LEVEL                  0x40
        !           107: #define   OPL_KSL_MASK                 0xc0    /* Envelope scaling bits */
        !           108: #define   OPL_TOTAL_LEVEL_MASK         0x3f    /* Strength (volume) of OP */
        !           109:
        !           110: /* Attack / Decay rate (0x60 to 0x75) */
        !           111: #define OPL_ATTACK_DECAY               0x60
        !           112: #define   OPL_ATTACK_MASK              0xf0
        !           113: #define   DECAY_MASK                   0x0f
        !           114:
        !           115: /* Sustain level / Release rate (0x80 to 0x95) */
        !           116: #define OPL_SUSTAIN_RELEASE            0x80
        !           117: #define   OPL_SUSTAIN_MASK             0xf0
        !           118: #define   OPL_RELEASE_MASK             0x0f
        !           119:
        !           120: /* Wave select (0xE0 to 0xF5) */
        !           121: #define OPL_WAVE_SELECT                        0xe0
        !           122:
        !           123: #define OPL_MAXREG                     0xf5
        !           124:
        !           125: /*
        !           126:  * Offsets to the register banks for voices.
        !           127:  */
        !           128: /* F-Number low bits (0xA0 to 0xA8). */
        !           129: #define OPL_FNUM_LOW                   0xa0
        !           130:
        !           131: /* F-number high bits / Key on / Block (octave) (0xB0 to 0xB8) */
        !           132: #define OPL_KEYON_BLOCK                        0xb0
        !           133: #define          OPL_KEYON_BIT                 0x20
        !           134: #define          OPL_BLOCKNUM_MASK             0x1c
        !           135: #define   OPL_FNUM_HIGH_MASK           0x03
        !           136:
        !           137: /* Feedback / Connection (0xc0 to 0xc8) */
        !           138: #define OPL_FEEDBACK_CONNECTION                0xc0
        !           139: #define   OPL_FEEDBACK_MASK            0x0e
        !           140: #define   OPL_CONNECTION_BIT           0x01
        !           141: #define   OPL_STEREO_BITS              0x30    /* OPL-3 only */
        !           142: #define     OPL_VOICE_TO_LEFT          0x10
        !           143: #define     OPL_VOICE_TO_RIGHT         0x20
        !           144:
        !           145: #define OPL2_NVOICE 9
        !           146: #define OPL3_NVOICE 18

CVSweb