/** * Loads Config * Starts the C64 Components and Threads */ void startComponents(char* memPtr,struct _6510_cpu* cpuPtr) { std::cout << "loading components..."<<std::endl; memoryManager = new Service::MemoryManager((MemoryCell)memPtr); Loader loader = Loader(memoryManager); std::cout << "load configfile..."<< std::endl; loader.loadConfig(); std::cout << "starting Sid thread..."<<std::endl; Sid::Sid* sid = new Sid::Sid(memoryManager); std::cout << "starting cia thread..."<<std::endl; cia = new Cia::Cia(cpuPtr,memoryManager); VIC* vic = new VIC(cpuPtr); std::cout << "create memoryMap" <<std::endl; memMap = new MemoryMap(memoryManager,cpuPtr); memMap->draw(0x0,1.1); sidThread =thread([sid]{sid->run();}); C64Clock = new Service::Clock(memoryManager); Screen* screen = new Screen(vic,cia,memoryManager,memMap); screenThread = thread([screen]{screen->power();}); C64Clock->addComponent(screen); C64Clock->addComponent(cia); }