DOSBox-X
|
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