~DISNEY(){ CPU_Snap_Back_To_Real_Mode(); BIOS_SetLPTPort(0,0); DISNEY_disable(0); if (disney.mo) delete disney.mo; CPU_Snap_Back_Restore(); }
// Initialisation CParallel::CParallel(Bitu portno, device_PRT* dosdevice) { portnum = portno; Bit16u base = parallel_baseaddr[portnum]; for (Bitu i = 0; i < 3; i++) { WriteHandler[i].Install(i + base, PARALLEL_Write); ReadHandler[i].Install(i + base, PARALLEL_Read); } BIOS_SetLPTPort(portnum, base); mydosdevice = dosdevice; };
DISNEY(Section* configuration):Module_base(configuration) { Section_prop * section=static_cast<Section_prop *>(configuration); if(!section->Get_bool("disney")) return; if(mem_readw(BIOS_ADDRESS_LPT1) != 0) return; BIOS_SetLPTPort(0,0x378); WriteHandler.Install(DISNEY_BASE,disney_write,IO_MB,3); ReadHandler.Install(DISNEY_BASE,disney_read,IO_MB,3); // see above //WriteHandler_cvm.Install(0x330,disney_write,IO_MB,1); disney.status=0x84; disney.control=0; disney.last_used=0; disney.mo = new MixerObject(); disney.chan=disney.mo->Install(&DISNEY_CallBack,10000,"DISNEY"); DISNEY_disable(0); }
CParallel::~CParallel(void) { BIOS_SetLPTPort(portnum, 0); };