Нет, я имел ввиду буквально. На самом деле часа слишком много, достаточно нескольких минут. Но видимо, мы имеем ввиду разные вещи. Итак, сколько же времени надо, чтобы написать эмулятор VT52? Один час или "куда больше трёх недель".Сообщение от error404
Речь о том, чтобы на 8-ми разрядном компьютере или на PC обеспечить визуализацию символов поступающих из линии. Вопросы связанные с линией передачи не рассматриваем. Итак, есть скоростное ядро Z80B на такте 8 МГЦ с ОЗУ 62 кб на w24512 и ПЗУ РФ2 (там только BOOT), выдающее символы в линию. Какая же программа мне нужна когда в качестве терминала я хочу использовать ОРИОН-128 (процессор Z80, реальный такт 4 МГЦ, экран 384*256, кстати не плющенный).
Для получения терминала VT52 я загружаю в ОЗУ ОРИОНА драйвер, например, D6$, который работает в банке 0, грузится на векторы ПЗУ F800, даёт 64 символа в строке на 25 или 32 строки и обслуживает все основные управляющие коды VT52 (кстати, в том числе и вставка и удаление строки, т.е ролики вверх-вниз, что ускоряет работу редактора SuperText и Турбо-Паскаля). Дополнительно драйвер обслуживает управляющие коды для работы с окнами, в частности, открытие цветного окна, закрытие окна и вывод рамки окна с заголовком и без, и, естественно, поддерживает цвет.
Такой драйвер резко упрощает создание оконных программ. Так что всё что остаётся мне сделать, это написать программу, которая в цикле ждёт очередного символа с линии, после чего делает CALL F809. Итого, если считать, что приём с линии тут не рассматривается, то вся программа состоит лишь из одной команды Z80. Вопрос на засыпку, сколько времени мне надо чтобы набрать в текстовом редакторе одну строку и странслировать ?
Теперь расмотрим вариант, когда в качестве терминала я вдруг захочу использовать IBM PC. У меня есть рабочая 386-тая и 486-тая. Есть и несколько неиспользуемых VGA дисплеев. Т.е надо написать программу в MSDOS или в древних LINUX (например REDHAT 5.0 из 1998). Для MSDOS ещё с середины 90-тых у меня есть мой цветной драйвер 64 символа в строке для VGA для всех режимов до 16*640*480 (а вот SVGA режимов, т.е 800*600 и выше - уже нет). В нём обрабатываются основные упр.коды VT52. Итого, ситуация аналогичная - вся программа это одна команда CALL CONOUT.
А вот для LINUX придётся писать программку на Турбо-Паскале. Удобно написать и отладить именно на Турбо Паскале в MSDOS (Windows), а после отладки уже странслировать LINUX транслятором Паскаля, который совместим с Турбо-Паскалем (но не имеет IDE, поэтому отлаживать удобнее в Турбо-Паскале). Что так трудно написать на ЯВУ программу, которая выводит символ в текущую позицию экрана 80*25 (для позиционирования есть оператор GOTOXY)? Можно управлять и цветом. Т.к управляющих кодов VT52 довольно много, поэтому я и указал, что на разработку может уйти целый час. А если вдруг "приспичит" использовать в качестве терминала более современную IBM PC, где Windows изуродована до того, что уже не может запускать программы MSDOS, то кто мешает взять Турбо Паскаль для Windows или Delphi и странслировать эту же программу в консольное приложение.
Что за ерунда ? Даже примитивный ASM.COM Digital Research 1977 года создаёт PRN-файл, где отмечены ошибки трансляции. Это только в UNIX ошибки идут в отдельный канал. А что это за дурное СИ, если оно так неудобно. Бесконечный экранный буфер с возможностью прокрутки, это не из CP/M. Вы хотите, чтобы в Вашем терминале были возможности, которых в CP/M отродясь не было и не будет. Да и как можно в ДОС в которой всего 64К тратить ОЗУ на подобную ерунду? Если даже функцию 10 (ввод строки) за 40 лет не удосужились доработать, чтобы был тимплет символов (т.е память на ранее введённые строки) и удобное редактирование, рассчитанное уже на экран, а не на АЦПУ. Получается, что Вы сами себе придумали проблему, отчего пришлось изуродовать свои программы плюсиками вместо нормальной псевдографики и цвета.Сообщение от error404
Кстати, не понимаю зачем терминалу надо совмещаться лишь по управляющим кодам с М-2 ОРИОНА, где обслуживается всего лишь несколько управляющих кодов от VT52. У Вас же нормальная CP/M, а не CP/M ОРИОНА из 1990 года, где нет драйвера, а весь CP/M-вывод переадресован напрямую на п/п-мму F809 ПЗУ ОРИОНА.




Ответить с цитированием