Благодарю Вас. Получается как бы у УКНЦ особенный, нестандартный терминал. Интересно, а как с этим было на Электронике-85? Там же вроде тоже не было терминала. И разве нельзя для абстрактного PDP-11 написать драйвер терминала УКНЦ?
Однако, главный вопрос - может ли программа как-то определить, что перед ней именно УКНЦ? Похоже у автора есть только один вариант - делать условную компиляцию и отдельный порт для УКНЦ и, возможно, БК-0011М. Подозреваю, что между БК и УКНЦ тут есть некоторая разница.
- - - Добавлено - - -
С такими пOдсказками автор отправит нас в далекое сибирское болото.А насчет формата FP - это хорошо, что лень пришла - труда много, а толку было бы мало. Однако, почти уверен, что бейсик можно в несколько раз разогнать. По моим представлениям УКНЦ на хорошем коде должен дать 1.5-2 МГц на ClockSp.
EDIT. Ещё меня смущает, что стандартная RT11 от Хунты пошла на УКНЦ - или она всё-таки не совсем стандартная? Или стандартная RT11 может приспособится к нестандартности УКНЦ? Пожалуйста, помогите разобраться.
Последний раз редактировалось litwr; 11.09.2021 в 12:43.
Вообще-то, УКНЦ - это (почти) обычная LSI-11/03 с сильно нестандартным набором периферии. (Почти) - это потому, что FIS у нее не микропрограммный, как у настоящей LSI-11, а реализован "теневой" программой. В остальном, ЦП УКНЦ точно соответствует LSI-11/03. Ну, еще шустрее вдвое, еще там есть ошибка, которая в нормальной работе не проявляется. Соответственно, и RT-11 на ней идет молча, как и на любой 11/03. Если, конечно, обеспечить нестандартную периферию соответствующими драйверами.
А вот периферия у УКНЦ ни разу не стандартная. Кое-что поддержано драйверами и, соответственно, может работать в RT-11, а кое-что многие программы (специфически УКНЦовые) пользуют напрямую и, соответственно, работоспособны только на УКНЦ. Как тот же вильнюсский Бейсик в версии для УКНЦ. Вроде-бы, он напрямую лезет к графическим ресурсам УКНЦ, хотя точно я не уверен.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
litwr(11.09.2021)
Терминал в УКНЦ эмулируется в ПЗУ периферийного процессора (да-да, у УКНЦ целых два процессора). У него вполне нормальные стандартные адреса 0177560-0177566 с поддержкой прерываний по векторам 060 и 064. Всё это стандартно для PDP-11. Небольшая нестандартность заключается в том, что обычно последовательный порт работает со скоростью 9600 бод (не бит/сек), потому скорость вывода информации упирается в этот предел (но больше и не надо). А в УКНЦ на этих адресах сидит высокоскоростной параллельный порт обмена между ЦП и ПП, так что скорость вывода определяется скоростью обработки информации в программе в ПП. У УКНЦ это повыше 9600 бод, в некоторых играх чувствуется.
Теперь по поводу нестандартности терминала. Нестандартен не терминал, а его система команд. В УКНЦ терминал эмулирует 15-ИЭ-00-013, в котором есть своя система команд плюс эмуляция системы команд VT-52. VT-52 в УКНЦ эмулируется не совсем точно, но терпимо. Также видеоконтроллер в УКНЦ цветной, поэтому есть Esc-последовательности для изменения цвета символа, фона, программирования клавиш К1-К5, вывод векторной графики, ну и другое...
Да, там терминал в RT-11 эмулировался драйвером PI.SYS. Электроника-85 (DEC PRO-350) формально к семейству PDP-11 не относятся, не смотря на ту же систему команд процессора.
Как я уже сказал, в УКНЦ регистры терминала стандартные 0177560-0177566. Управляющие коды и Esc-последовательности поддерживаются от VT-52. Чего ещё надо? Драйвер только обслуживает вывод на адрес 0177566 и приём кодов с клавиатуры с адреса 0177562 (хотя адреса терминала можно менять при генерации новой системы, а также изменить в области связи RMON). А все эти управляющие коды и Esc-последовательности выводит именно программа, она формирует строку и даёт задание драйверу для вывода этой строки. Так что никакой драйвер для УКНЦ писать не надо.
Хотя есть одно большое НО. Стандартная RT-11 поддерживает вывод только семибитных символов, старший бит обрезается. Так что на УКНЦ, используя стандартную RT-11, не вывести псевдографику, а также некоторые Esc-последовательности. Здесь уже только вывод непосредственно в регистр 0177566, минуя вызов RT-11.
Это точно. Зачем занимать лишнюю память для подпрограммы определения модели компьютера.
И да, между БК и УКНЦ не то что некоторая разница, а довольно большая разница. Вот на БК нет регистров терминала и для БК-0011М есть свой клон RT-11, который пойдёт только на БК-0011М. Стандартная RT-11 на БК не пойдёт.
- - - Добавлено - - -
Вильнюсский Бейсик для вывода графики использует специальные Esc-последовательности, он даже в ПП не лезет. Единственно он переназначает вектор HALT для обработки нажатий клавиши СТОП.
litwr(11.09.2021)
И RSX-11 там штатная ОС.
- - - Добавлено - - -
Там всё ещё хуже, автор определяет не модель компьютера, а ОС! Типа ОС загрузит программу, а программа начинает шпионить - что тут за ОС меня подняла? Если бы не было этого примера, то не поверил бы, что такое возможно. Типа загрузили программу под Linux, а она проверяет не ДОС ли это. Для автора УКНЦ - это особая ОС, отличная от DOS11, RSX11, RSTS или RT11.
Ну не PDP-11, а PDP-11 compatible. Штатная ОС там P/OS, построенная на RSX-11M Plus.
Это что-то типа того, что RT-11 адаптировали на БК-0011М под именем ОС БК-11. Программы от RT-11 там тоже идут, если используют вызовы ОС.
- - - Добавлено - - -
А как это при вызове можно определить операционную систему? У разных ОС разный формат исполнимых файлов, да и формат вызовов также разный. В DOS-овской программе конечно можно определить, что она вызвана из Windows, но это уже в Windows есть новые вызовы. Так же в RSX-11 есть эмулятор RTEM.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)