PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
В UKNCBTL запись в порт 0176574 обрабатывается так:
А нужно так:Код:void CFirstMemoryController::SetPortWord(WORD address, WORD word) { switch (address) { case 0176574: // Стык С2: Регистр состояния источника case 0176575: // Bits 0,2,6 m_Port176574 = (m_Port176574 & ~0105) | (word & 0105); break; case 0176576: // Стык С2: Регистр данных источника case 0176577: // нижние 8 бит доступны по записи m_Port176576 = word & 0xff; m_Port176574 &= ~128; // Reset bit 7 (Ready) break; } }
Точно так же нужно изменить обработку всех остальных 3-х регистров статуса ( приёмник С2, приёмник СА, передатчик СА ), учитывая, что адреса векторов и место IRQ в цепочке приоритетов там другие ( для С2 - приемник 7, передатчик 8, для СА - приемник 9, передатчик 10 ).Код:void CFirstMemoryController::SetPortWord(WORD address, WORD word) { switch (address) { case 0176574: // Стык С2: Регистр состояния источника case 0176575: // Bits 0,2,6 if(((m_Port176574 & 0300) == 0200) && (word & 0100)) { m_pCPU->InterruptVIRQ(8, 0374); } m_Port176574 = (m_Port176574 & ~0105) | (word & 0105); break; case 0176576: // Стык С2: Регистр данных источника case 0176577: // нижние 8 бит доступны по записи m_Port176576 = word & 0xff; m_Port176574 &= ~128; // Reset bit 7 (Ready) break; } }
Последний раз редактировалось Patron; 29.01.2013 в 19:04.
offtop
Скрытый текст
Patron, уже предвкушаю (когда до дела дойдёт) какая будет правильная виртуальная УК-НЦ от Patrona ! ) Вот бы чуток в будущее отмотать, скачать и выложить тут - типа вот ребята - вот так короче всё будет )))
ИМХО: пока я не увидел первый исходник на Си - я думал, что Ассемблер(МАКРО-11) страшный и непонятный )))
[свернуть]
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Понятно, в коде UKNCBTL уже где-то используются VIRQ 7 и 9, это теперь весь код перелопачивать?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)