В сообщении выше обновились/добавились файлы. Появилась поддержка 22-битного контроллера HD который я использую в E11 - надоело перегружаться из одной системв в другую, чтобы загрузить третью
Попутно предложение, касающееся будущей эмуляции ВМ3
Слегка расширить устройство HD, сохранив совместимость:
- добавить поддержку байтовой записи (если ее нет)
- при записи в CSR позволять писать только младшие 3 бита (команда) и младшие 6 битов старшего байта (расширение адреса буфера), сбрасывать бит 15 (ошибка), устанавливая его после выполнения команды (если была запись в слово/младший байт) в случае ошибки
- после выполнения команды чтения/записи в регистр данных возвращать статус к примеру код завершения в младшем байте, unit # в старшем
- для идентификации нового варианта контроллера добавить команду с кодом 0 которая бы возвращала в регистр данных что-нибудь
На данный момент мучаю такой вариант HD в E11. Отлично работает как с выложенным выше RSX, так и с RT-11 и тамошним драйвером от данного эмулятора, ну и теперь и из mapped RSX я могу напрямую обращаться к нему...
Кстати в RSX образе который выкладывал выше в командах SAV и BOO драйвер ихний был некорректно сделан и лишил возможности грузиться/сохраняться на некоторых других устройствах (которых впрочем никогда на ДВК не было). Будет время - пересоберу...
UPD: себе сделал вариант где в CSR всегда установлен 7 бит, а команда 0 выполняет роль NOP, соответственно если обнулить CSR и 7 бит останется установленным - это расширенный вариант контроллера, если же 7 бит обнуляется - контроллер классический и драйвер в XM/ZM не должен устанавливаться, а в mapped RSX отмечать все устройства как offline
UPD2: посе выполнения любой команды (кроме чтения размера устройства) у меня регистр данных возвращает в старшем байте последний выбранный unit (сам номер может быть соответственно от 0 до 0377), в младшем байте код ошибки: 1 - нет ошибки, 0277 - устройство offline, 0354 - выход за пределы устройства, 0364 - попытка записи на защищенное устройство, 0374 - неустранимая ошибка (например bus error), 0376 - неверная команда. Эти коды совместимы с RSX-11 I/O ошибками