Новая версия 207:
- файл лога теперь создается только если появляются записи, чтобы не плодить пустые файлы
- доработана модель шины данных, теперь все устройства вешаются на нее и взаимодействуют друг с другом только через шину
- GUI: захват мыши теперь происходит только при двойном клике (освобождение Alt+Ctrl)
- окно настроек строится динамически - прямо с шины вытягивается список висящих на ней устройств и через рефлексию делается поиск подходящего контрола для настройки каждого девайса (поиск по всем сборкам домена, т.е. без проблем можно подгружать внешние девайсы-плагины
осталось немного допилить (убрать некоторые связи), подоптимизировать, довести до ума скрин конфигурации машины и готов плагинный эмулятор
Пока коротоко суть работы плагинов:
Все девайсы (кроме самого проца) являются наследниками IBusDevice и взаимодействуют только с шиной.
Девайс может найти своих собратьев на шине по типу реализуемого ими интерфейса, для этого используется метод FindDevice.
Работа девайса начинается с вызова BusConnect, вот пример реализации магнитофона:
Код:public void BusConnect(IBusManager bmgr) { bmgr.SubscribeRDIO(0x0001, 0x0000, readPortFE); } public void BusDisconnect() { } public string BusDeviceType { get { return "Tape Recorder"; } } public string BusDeviceName { get { return "Play only tape device"; } } #region WRPORT private void readPortFE(long cpuTact, ushort addr, ref byte value) { value &= 0xBF; value |= (byte)(GetTapeBit(cpuTact) & 0x40); } #endregion






Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
