DOSBox-X
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
src/hardware/snd_pc98/cbus/cbuscore.c
00001 #include        "compiler.h"
00002 #include        "pccore.h"
00003 #include        "iocore.h"
00004 #include        "cbuscore.h"
00005 #include        "ideio.h"
00006 #include        "sasiio.h"
00007 #include        "scsiio.h"
00008 #include        "pc9861k.h"
00009 #include        "mpu98ii.h"
00010 
00011 
00012 static const FNIORESET resetfn[] = {
00013 #if defined(SUPPORT_IDEIO)
00014                         ideio_reset,
00015 #endif
00016 #if defined(SUPPORT_SASI)
00017                         sasiio_reset,
00018 #endif
00019 #if defined(SUPPORT_SCSI)
00020                         scsiio_reset,
00021 #endif
00022 #if defined(SUPPORT_PC9861K)
00023                         pc9861k_reset,
00024 #endif
00025                         mpu98ii_reset,
00026         };
00027 
00028 static const FNIOBIND bindfn[] = {
00029 #if defined(SUPPORT_IDEIO)
00030                         ideio_bind,
00031 #endif
00032 #if defined(SUPPORT_SASI)
00033                         sasiio_bind,
00034 #endif
00035 #if defined(SUPPORT_SCSI)
00036                         scsiio_bind,
00037 #endif
00038 #if defined(SUPPORT_PC9861K)
00039                         pc9861k_bind,
00040 #endif
00041                         mpu98ii_bind,
00042         };
00043 
00044 
00045 void cbuscore_reset(const NP2CFG *pConfig) {
00046 
00047         iocore_cbreset(resetfn, NELEMENTS(resetfn), pConfig);
00048 }
00049 
00050 void cbuscore_bind(void) {
00051 
00052         iocore_cbbind(bindfn, NELEMENTS(bindfn));
00053 }
00054 
00055 
00056 void cbuscore_attachsndex(UINT port, const IOOUT *out, const IOINP *inp) {
00057 
00058         UINT    i;
00059         IOOUT   outfn;
00060         IOINP   inpfn;
00061 
00062         for (i=0; i<4; i++) {
00063                 outfn = out[i];
00064                 if (outfn) {
00065                         iocore_attachsndout(port, outfn);
00066                 }
00067                 inpfn = inp[i];
00068                 if (inpfn) {
00069                         iocore_attachsndinp(port, inpfn);
00070                 }
00071                 port += 2;
00072         }
00073 }
00074