1995-04-09 15:50:27 +00:00
|
|
|
/*creative.h-------------------------------------------------------------------
|
|
|
|
|
|
|
|
Matsushita(Panasonic) / Creative CD-ROM Driver (matcd)
|
|
|
|
Authored by Frank Durda IV
|
|
|
|
|
|
|
|
Copyright 1994, 1995 Frank Durda IV. All rights reserved.
|
|
|
|
"FDIV" is a trademark of Frank Durda IV.
|
|
|
|
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or
|
|
|
|
without modification, are permitted provided that the following
|
|
|
|
conditions are met:
|
|
|
|
1. Redistributions of source code must retain the above copyright
|
|
|
|
notice positioned at the very beginning of this file without
|
|
|
|
modification, all copyright strings, all related programming
|
|
|
|
codes that display the copyright strings, this list of
|
|
|
|
conditions and the following disclaimer.
|
|
|
|
2. Redistributions in binary form must contain all copyright strings
|
|
|
|
and related programming code that display the copyright strings.
|
|
|
|
3. Redistributions in binary form must reproduce the above copyright
|
|
|
|
notice, this list of conditions and the following disclaimer in
|
|
|
|
the documentation and/or other materials provided with the
|
|
|
|
distribution.
|
|
|
|
4. All advertising materials mentioning features or use of this
|
|
|
|
software must display the following acknowledgement:
|
|
|
|
"The Matsushita/Panasonic CD-ROM driver was developed
|
|
|
|
by Frank Durda IV for use with "FreeBSD" and similar
|
|
|
|
operating systems."
|
|
|
|
"Similar operating systems" includes mainly non-profit oriented
|
|
|
|
systems for research and education, including but not restricted
|
|
|
|
to "NetBSD", "386BSD", and "Mach" (by CMU). The wording of the
|
|
|
|
acknowledgement (in electronic form or printed text) may not be
|
|
|
|
changed without permission from the author.
|
|
|
|
5. Absolutely no warranty of function, fitness or purpose is made
|
|
|
|
by the author Frank Durda IV.
|
|
|
|
6. Neither the name of the author nor the name "FreeBSD" may
|
|
|
|
be used to endorse or promote products derived from this software
|
|
|
|
without specific prior written permission.
|
|
|
|
(The author can be reached at bsdmail@nemesis.lonestar.org)
|
|
|
|
7. The product containing this software must meet all of these
|
|
|
|
conditions even if it is unsupported, not a complete system
|
|
|
|
and/or does not contain compiled code.
|
|
|
|
8. These conditions will be in force for the full life of the
|
1995-05-30 08:16:23 +00:00
|
|
|
copyright.
|
1995-04-09 15:50:27 +00:00
|
|
|
9. If all the above conditions are met, modifications to other
|
|
|
|
parts of this file may be freely made, although any person
|
|
|
|
or persons making changes do not receive the right to add their
|
|
|
|
name or names to the copyright strings and notices in this
|
|
|
|
software. Persons making changes are encouraged to insert edit
|
|
|
|
history in matcd.c and to put your name and details of the
|
1995-05-30 08:16:23 +00:00
|
|
|
change there.
|
1995-04-09 15:50:27 +00:00
|
|
|
10. You must have prior written permission from the author to
|
|
|
|
deviate from these terms.
|
|
|
|
|
1995-05-30 08:16:23 +00:00
|
|
|
Vendors who produce product(s) containing this code are encouraged
|
1995-04-09 15:50:27 +00:00
|
|
|
(but not required) to provide copies of the finished product(s) to
|
|
|
|
the author and to correspond with the author about development
|
|
|
|
activity relating to this code. Donations of development hardware
|
|
|
|
and/or software are also welcome. (This is one of the faster ways
|
|
|
|
to get a driver developed for a device.)
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE DEVELOPER(S) ``AS IS'' AND ANY
|
|
|
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
|
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE DEVELOPER(S) BE
|
|
|
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
|
|
|
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
|
|
|
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
|
|
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
|
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
|
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
|
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
|
|
|
|
|
|
|
-----No changes are allowed above this line------------------------------------
|
|
|
|
|
|
|
|
See matcd.c for Edit History
|
|
|
|
|
|
|
|
These are the I/O port mapping offsets and bit assignments used
|
|
|
|
by Creative Labs in their implementation of the host interface for
|
|
|
|
the Matsushita CD-ROM drive. These may be different in the adapter
|
|
|
|
cards (including sound cards) made by other vendors.
|
|
|
|
It is unknown if the Creative interface is based on a reference design
|
|
|
|
provided by Matsushita (other interface vendors would similar or
|
|
|
|
identical if this was the case).
|
|
|
|
|
|
|
|
The drive is actually capable of some things that the Creative
|
|
|
|
interface doesn't implement, such as DMA and interrupts.
|
|
|
|
|
|
|
|
See matcd.h for defines related to the Matsushita drive itself.
|
|
|
|
*/
|
1995-05-30 08:16:23 +00:00
|
|
|
|
1995-04-09 15:50:27 +00:00
|
|
|
|
|
|
|
/* Creative Labs (and compatible) I/O port mapping offsets
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define NUMPORTS 4 /*Four ports are decoded by the i/f*/
|
|
|
|
|
|
|
|
#define CMD 0 /*Write - commands*/
|
|
|
|
#define DATA 0 /*Read - data/status from drive*/
|
1996-10-30 22:41:46 +00:00
|
|
|
#ifdef PC98
|
|
|
|
#define PHASE 0x100 /*Write - switch between data/status*/
|
|
|
|
#define STATUS 0x100 /*Read - bus status */
|
|
|
|
#define RESET 0x200 /*Write - reset all attached drives*/
|
|
|
|
#define ALTDATA 0x200 /*<20>Read - data on non Creative bds.*/
|
|
|
|
#define SELECT 0x300 /*Write - drive select*/
|
|
|
|
#else /* !PC98 */
|
1995-04-09 15:50:27 +00:00
|
|
|
#define PHASE 1 /*Write - switch between data/status*/
|
|
|
|
#define STATUS 1 /*Read - bus status*/
|
|
|
|
#define RESET 2 /*Write - reset all attached drives*/
|
|
|
|
/*Any value written will reset*/
|
1995-07-11 03:03:47 +00:00
|
|
|
#define ALTDATA 2 /*<20>Read - data on non Creative bds.*/
|
1995-04-09 15:50:27 +00:00
|
|
|
#define SELECT 3 /*Write - drive select*/
|
1996-10-30 22:41:46 +00:00
|
|
|
#endif /*PC98*/
|
1995-04-09 15:50:27 +00:00
|
|
|
|
|
|
|
/* Creative PHASE port bit assignments
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define PHASENA 1 /*Access data bytes instead of status*/
|
|
|
|
|
|
|
|
|
|
|
|
/* Creative STATUS port register bits
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define DTEN 2 /*When low, in data xfer phase*/
|
|
|
|
#define STEN 4 /*When low, in status phase*/
|
|
|
|
#define TEST 1 /*Function is unknown*/
|
|
|
|
|
|
|
|
|
|
|
|
/* Creative drive SELECT port bit assignments
|
|
|
|
Note that in the Creative interface, DS0==Bit 1 and
|
|
|
|
DS1==Bit 0 (DS is Drive Select).
|
|
|
|
*/
|
|
|
|
|
|
|
|
#define CRDRIVE0 0x00
|
|
|
|
#define CRDRIVE1 0x02
|
|
|
|
#define CRDRIVE2 0x01
|
|
|
|
#define CRDRIVE3 0x03
|
|
|
|
|
|
|
|
/*End of creative.h*/
|
|
|
|
|
|
|
|
|