Сильно подозреваю, что то-то похожее есть и в RSX-11, иначе как ПРОС поймет 64-М винчестер?
Вид для печати
Сильно подозреваю, что то-то похожее есть и в RSX-11, иначе как ПРОС поймет 64-М винчестер?
В RSX-11 и P/OS номер блока передается в двух словах запроса QIO$ из них используются 48 бит.
- - - Добавлено - - -
Добавлю, что в RT-11 драйвер DU прекрасно позволяет программе выполнять I/O с двухсловными номерами блоков. Именно программе работать, а не обращаться к разделам DU с перетрансляцией драйвером.
Вот-вот.
В смысле HDDA, да? Запросто. Если ввести команду CS.HiB, по которой принимать старшие разряды номера блока. А для совместимости сбрасывать их по команде CS.BLK. Выдали только младшие 16 бит - обращаемся к младшим 32 М, выдали сначала младшие, затем старшие - имеем полный 32-битовый адрес.
Есть и тут свои плюсы. Особенно если этот блок будет упдатиться по мере выполнения I/O (адрес буфера и адрес на диске) как это делают DECовские контроллеры со своими регистрами.
- - - Добавлено - - -
Ну и сразу попутно вторая мысль - ввести в использование 6 бит CSR для разрешения прерываний после окончания I/O. Для эмулятора оно особо не нужно, зато если потом по мотивам эмулятора сделать реальную железку - пригодится. И сделать команду для выбора вектора.
Блок расширенной команды есть смысл рассматривать, как интерфейс 32-разрядного контроллера, поэтому все поля там должны быть 2-словными.