1

Тема: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

За весь период использования РЛК мне было известно, как минимум, два редактора:

  • ED.МИКРОН - входящий в состав транслятора ассемблера/дизассемблера (2Кб)

  • WEL - довольно объёмный редактор (5.5Кб)

Однако, все эти интрументы имеют один общий недостаток - посадка на нулевой адрес и низкоуровневая (RST командами) привязка к нему: Просто так их не переместишь!

Некогда прозвучавшая идея (не моя), что не плохо было бы иметь простой экранный редактор прямо в дополнительном ПЗУ (адреса F000-F7FF) не требующий загрузки и с быстрым запуском (директива U Монитора совершает переход на F000), заставил поразмышлять на тему.

Наконец-то, этим месяцем апрелем мне удалось найти в себе отголоски былого 8-битного опыта и тряхнуть стариной.
За основной рабочий инструмент был выбран онлайн-эмулятор РЛК rk86.ru со встроенным ассемблером и поддержкой т.н. светового пера, эмулируемым указателем мыши.

Всегда было интересно, как устроен текстовый редактор оболочки Norton Commander (Volcov Commander) с его функцией Wrap/UnWrap. И с чистого листа пришлось набивать текст листинга на ассемблере под вывод текста из памяти и его прокруткой на длинных строчках (до 255 символов).
Отображение корректных отступов табуляции оказалось очень интересной и сложной темой. А с горизонтальной прокруткой эта табуляция отняла у меня пару дней жёсткой отладки.

Короче говоря, апрель месяц был начат с написания кода текстового редактора и целых 10 дней ушло на то, чтобы заставить этот код хоть как-то предсказуемо работать.

Запустить всё это безобразие можно по этой ссылке (буфер текста уже предустановлен и есть обращение к коду отладчика, который тестирует работу ввода целых и дробных 24-битных, а также - распознаёт токены).

  • Клавиша F1 или Двойной клик мышью (световым пером) по позиции вызывает контекстное меню с опциями передачи управления пользовательскому коду или компилятору

  • Клавиши F2 и F3 прокручивают текст на экране назад и вперёд

  • Если мышью (световым пером) назад вне области редактирования текста, будет производиться горизонтальная или вертикальная прокрутка

  • Клавиши Delete/End/Home работают стандартно (в конкретном онлайн-эмуляторе)

В качестве примера, для оценки производительности кода, был добавлен листинг известной программы Вечный календарь.

Как сказанно выше, код адаптирован и транслирован в область F000-F7FF и запускается директивой U Монитора.
Перед началом он запросит адрес буфера с редактируемым текстом и следует корректно его ввести директивой X Монитора.

P.S.: Надеюсь, кому-то и пригодится.

Отредактировано Alikberov (30-04-2023 23:24:10)

Post's attachments

Иконка вложений rk86-light-editor-pan1.png 36.93 Кб, 78 скачиваний с 2023-04-10 



2

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Выглядит вполне удобно.
Интересно бы на реальном железе проверить, но у меня нет "Радио-86РК" (всё как-то больше "Спектрумы" попадались).
Кстати, а не хотели бы написать статью в журнал про "Радио-86РК"? Компьютер интересный, но про него практически не писали в журнале... (Разве что о портировании "Охоты на лис" на него.)



3

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Да, я бы тоже с удовольствием про этот комп почитал.



4

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Так в журнале впринципе восьмиразрядных компьютеров мало :-)
Касательно РК86 и редактора - очень интересно. Привык, что пишут о нем, как манипулятор для рисования, а вот в качестве аналога сенсорного стилуса не видел, чтоб использовали



5

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

uav1606 пишет:

Выглядит вполне удобно.

Один знакомый подал идею, так как всякие демонстрации и игры сейчас многими делаются, а редакторов текста - совсем мало. Тем более пригодных для работы в ПЗУ.

uav1606 пишет:

Интересно бы на реальном железе проверить, но у меня нет "Радио-86РК" (всё как-то больше "Спектрумы" попадались).

Всё руки не доходят заняться восстановлением своего. Опасаюсь, что РФ2 там могла затереться за давностью лет.

И ещё несколько игр никак в сети не найду, а с плёнки (15 лет назад) вводились с ошибками. Нужно будет найти кассету и попробовать вновь.

  • BALL

  • SKYTHE

  • РАЛЛИ

  • САД

uav1606 пишет:

Кстати, а не хотели бы написать статью в журнал про "Радио-86РК"? Компьютер интересный, но про него практически не писали в журнале... (Разве что о портировании "Охоты на лис" на него.)

Если предлагаете, то можно, в перспективе.

Спасибо!



6

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Alikberov пишет:

Если предлагаете, то можно, в перспективе.

Очень было бы интересно. Тоже бы почитал, особенно о сегодняшнем дне РК86
P.S. Извиняюсь за небольшой оффтоп, а делалась ли поддержка QWERTY-раскладки? Интересно, было ли такое для РК86, но если известно об Орионе и Специалисте - тоже было бы интересно

Отредактировано Andrei88 (20-04-2023 16:18:47)



7

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Andrei88 пишет:

а делалась ли поддержка QWERTY-раскладки?

Года три тому назад я переписал родной Монитор на 80% и планировал ввести QWERTY-раскладку.
Но, так руки и не дошли.

Начал переписывать ПЗУ с того, что сделал поддержку изменяемого текстового окна в подпрограмме вывода символа на экран.
Потом переписал директивы D, L и M. Доработал директиву R для поддержки внешних ПЗУ до 16 Мб.

Осталось переписать подпрограммы ввода-вывода магнитофона для прозрачного подсчёта контрольной суммы. А также, клавиатуры, внедрив в неё поддержку переключения между задачами (подобно Alt+Tab).

Однако, силы природы решили меня остановить майским днём, спалив мой тюнер СТВ и мониторы.

P.S.: Исходники того Монитора не утеряны, но недоступны по причине неожиданных BSOD'ов.
Хотя, протестировать мой Монитор и запустить на нём игру "Жизнь" с поддержкой светового пера (мышки) можно по ссылке (нажать G и Enter не забудьте).
(Если после этого запустить из списка Built-in снизу файл "okoshki-demo.rkr", можно ознакомиться с его возможностями.)
Однако, текстовый редактор любителям куда нужнее, чем непонятный переписанный Монитор.

Отредактировано Alikberov (20-04-2023 21:40:31)



8

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

С Первомаем, Товарищи!

Все эти дни вкалывал и шаманил над кодом.

Одерживая несколько побед на низком уровне, пришла мысль переименовать редактор в ПОБЕДИТ.
Думаю, никто меня не осудит.

Вот ссылка на онлайн запуск демонстрационного кода.
(Просто, нажмите Enter, а потом - F1/F2/F3/F4/F5)

P.S.: Версия вполне стабильная, неплохо описана (по нескольким нажатиям F1), шустрая.
Думаю, вполне может стать инструментальной.



9

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Ого, такие вещи на асме делать. ЗАЧЕТНО

Касаемо 86РК и ВМ80А я, правда, дальше интерпретатора Brainfuck и реализаций шифрования "Магма" не ушел

С магмой вообще была история. Планировалось с товарищем из интереса собрать радиотелефон с шифрованием. АЦП гонит звук в цифру, процессор принимает, обрабатывает магмой, пускает в радиоканал. А там на другой стороне уже все наоборот. За процессор и попробовали взять ВМ80А, ибо у товарища куча корпусов этого процессора, да и достать их легко (драгмета в 580 серии не водится особо, так что гадким металюгам они интереса не представляют). Но конечно после написания даже простой версии (ECB) шифрования стало ясно, что при номинальной частоте процессора  2-2,5 мгц и при затратности подпрограммы около 156000 тактов на шифрование или дешифрование, больше 16 раз в секунду ее не получится применить. Соответственно, если за каждый вызов мы обрабатываем блок в 64 бита, то за секунду больше 1кбита обработать не удастся, и это еще в идеальной среде. По факту же, скорее всего, результат будет на уровне 800-900 бит/c, а потом еще нужно пересылать данные... одного процессора слишком мало, а ставить несколько - нужно их синхронизовать, да и вообще слишком уже жирно для относительно компакного радиотелефона. Так в общем эту идею и отложили. Остальные советские процессоры, как правило, вкусны драгметчикам, либо просто не очень доступны даже сейчас (идея была собрать именно на отечественных микросхемах), так что увы, ничего то путного и не сложилось...

Отредактировано Bs0Dd (01-05-2023 02:01:54)

Pentium это вам не Celeron!
Но и Celeron никогда Pentium-ом не был
Bs(/)Dd's personal page
Nokia Business Phones FAN-Site


10

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Bs0Dd пишет:

Касаемо 86РК и ВМ80А я, правда, дальше интерпретатора Brainfuck и реализаций шифрования "Магма" не ушел

Когда читал, подумалось о DSP-шках, хотя бы КР1813ВЕ1 (как раз очень походит по задачам), но действительно такие штуки просто так не найдешь :-) Возможно, конечно, Z80-е, но они уже не советские - Т34ВМ1 появились уже позже.
P.S. В "Радио" в начале 90-х была реклама телефонных шифраторов - уж не знаю, какой алгоритм, но, видимо, тоже был какой-то доступ к DSP

Отредактировано Andrei88 (01-05-2023 09:45:35)



11

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Здравствуйте. Иногда я посматриваю (в Google), на упоминания РК вообще и WEL в частности. Вчера вот увидел на нескольких форумах эту вашу работу. Посмотрел на old-dos -- не нашёл (там бы ответил, наверное). Попутно обнаружил эту тему и здесь (в Google не встретилась). Решил очень кратко ответить (на других форумах я не зарегистрирован). Я с телефона (старого) в интернете (хорошо, что bluetooth-клавиатура подключается). Поэтому, очень кратко, и, наверное, в нескольких последовательных сообщениях (а то ещё пропадёт набранное).

WEL -- это мой редактор (я автор). В Радио опубликована версия 2, о чём говорит контрольная сумма ED20.

Alikberov пишет:

За весь период использования РЛК мне было известно, как минимум, два редактора

Там (в журнале Радио) ещё один точно был опубликован немного позже.

Alikberov пишет:

Некогда прозвучавшая идея (не моя), что не плохо было бы иметь простой экранный редактор прямо в дополнительном ПЗУ (адреса F000-F7FF) не требующий загрузки и с быстрым запуском

Это было сделано, то ли версия 3 использовалась, то ли дальше -- слабо очень помню, всё же 30 лет прошло с тех пор.

Опишу, как помню, в следующем сообщении. Технических деталей я уже совсем почти не помню. Даже с трудом сообразил (и "технически" вряд ли аргументирую) странность предложения (на другом форуме в теме вашей) использовать директивы Монитора для поиска текста из редактора (чем больше припоминаю, тем всё страннее вижу это предложение).

Это лишь воспоминания (слабые, к тому же). Помочь-подсказать, увы, не смогу. Остались кое-какие бумаги и коробка 5-дюймовых дискет нестандартного формата (CP/M). И всё.



12

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

В общем, тогда, когда нижеследующее было реализовано, это был, скорее РК++  -- схемотехнические изменения делал С.У. (инициалы) -- мой однокурсник (это лишь примерно так, иначе много объяснять).

Архитектурные изменения следующие (могу забыть или напутать в деталях):

1. Оперативная память была расширена до 64 килобайтов.
2. Что там с экранной областью -- не помню, увы, деталей -- вроде бы была смещена вверх максимально.
3. ПЗУ было то ли одно на 8 килобайт, то ли два -- тоже, увы, не помню.
4. Монитор был переписан и расширен (это была моя работа):
-- при запуске компьютера выводилось меню -- горизонтальная полоска с выбором элемента (текста) инверсией (вроде бы). Что-то ещё было на стартовом экране -- не помню. Вроде, картинка-надпись псевдографикой, и какие-то цифровые данные (охохонюшки, память...)
-- из пунктов меню помню не все и не по порядку (пунктов было больше, это точно):

Пункт WEL -- он работал из ПЗУ, служебная область была тоже вверху, или под экранной областью, или разделялась (совместно использовалась) с областью Монитора. Текст был с нуля (или со 100, но это потом, когда CP/M стала использоваться -- у CP/M там буфер дисковый 0-FF.).

Пункт ассемблера (моя модификация, M & S, она тоже в Радио есть).

Пункты дизассемблера и отладчика... Не уверен, что были они.

Пункт LET -- это типа HIEW, но сделано во многом на примере программы тех лет DESS (для ДВК).

* * *

Дисковод вроде бы тогда уже был подключён, но исходная система (что в Радио тогда была) почти сразу была изменена нами вместе с С.У. И совсем скоро мы достали CP/M 2 в исходниках, и перевели всё на CP/M.

С.У. тогда же разработал свой собственный компьютер на 580, который был совместим со всем этим. Вот всего два экземпляра его было им выпущено -- его и мой. Помню, клавиатуру от ДВК3 (роскошнейшую механическую) подключили.

Да, С.У. защитил диплом -- эта его разработка есть его дипломная работа. Рам-диск (или странично-оконная организация ОЗУ была реализована -- не помню).

Увы, тогда была заметно тяжёлая (денежно) жизнь, и это всё так и осталось по сути, уникальным проектом. Очень жаль. И тогда уже PC стали распространяться.

Помню, что в CP/M был роскошнейший макроассемблер -- вполне, и на уровне (и чем-то даже выше) всего того, что я видывал уже на PC (на ассемблере я достаточно в PC работал).

С макропроцессорами схожая история -- самый, наверное, лучший (по возможностям) макроассемблер -- из 60-х годов -- ML/I (и весьма сложный). В моей модификации Multi-Edit 7.0 он используется (см. на old-dos).

* * *

Попробую собраться на полатях (на антресолях) посмотреть -- там бумаги кое-какие. Если не выцвели, что-нибудь напишу ещё. Там есть брошюра моя по WEL 3.0 -- на советском струйном принтере распечатал. Выцвела, поди.



13

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

SergeCpp пишет:

WEL -- это мой редактор (я автор). В Радио опубликована версия 2, о чём говорит контрольная сумма ED20.

Очень приятно встретить человека, чей код я неделями вбивал. big_smile

SergeCpp пишет:

Там (в журнале Радио) ещё один точно был опубликован немного позже.

Журнал Радио №10 за 1993 - последний, что мы получили. Потом приходилось выборочно покупать на рынке с рук.
Видимо, потому я не знаю ничего.
(FTP-архив - другая тема: Печатные журналы иначе воспринимаются.)

SergeCpp пишет:

Это было сделано, то ли версия 3 использовалась, то ли дальше -- слабо очень помню, всё же 30 лет прошло с тех пор.

Да, есть у меня крошечная мечта - свой Бейсик написать…
Начал было с однострочным редактором возиться, но потом подумал, что лучше написать универсальный на все случаи жизни.

Относительно недавно почти полностью переписал ПЗУ оригинального Монитора РК, добавив туда поддержку ROM-Дисков до 16 Мб в директиву R и «оконность» с поддержкой Escape-последовательности на уровне П/П F809, так как в оригинальной версии плотность кода невысока и позволяет добавить…
Демонстрация в YouTube



14

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

SergeCpp пишет:

Даже с трудом сообразил (и "технически" вряд ли аргументирую) странность предложения (на другом форуме в теме вашей) использовать директивы Монитора для поиска текста из редактора

За это время услышал много критики в адрес своей программы со стороны.
Многих смущает отсутствие встроенных возможностей сохранения файла. neutral
Однако, я это не делал по принципиальным соображениям. Сейчас объясню, почему…

Ещё со школы я мечтал написать собственный интерпретатор Бейсика, если говорить кратко…

Так вот, из моих "внутренних разработок" по проработке алгоритмов поиска по именам меток или переменных, а также - отладка ввода и вывода вещественных чисел (мантисса - 24 бита), потребовалась удобная процедура ввода с клавиатуры данных и их редактирования.
Сначала я обходился простыми подпрограммами ввода строки, что вскоре сильно сказалось на производительности разработки из-за их ограниченного функционала.
И я решил заняться этим вопросом, чтобы закрыть его и не возвращаться.

Так, спустя месяцы упорного кодирования и отладки, появился «Победит», как альтернатива функционалу операторов INPUT Бейсика или READLN Паскаля.
Да, «Победит» - именно мега-продинутый INPUT или READLN! big_smile

Тем самым, довольно странно иметь в операторе INPUT возможность сохранения в файл или поиска ключевого слова.
Всё, что требуется от INPUT - лишь ввод с клавиатуры требуемых данных.

Таким образом, сам «Победит» это выполняет и даже перевыполняет. Так как…

  1. Поддерживает буфер до 64 Кб (если, конечно, ПК это предоставляет)

  2. Поддерживает управляющие атрибуты ВГ75 (подчёркивание, мигание, цвет и т.п.)

  3. Имеет максимальную производительность даже при достаточно больших объёмах текста

  4. Поддерживает "световое перо" ВГ75 (любой стилус с адаптером)

(Дополнительный функционал определяется и поддерживается пользовательским CALLBACK-ом, который вызывается постоянно, как указывалось в начале темы.)

Говоря кратко, «Победит» - это просто "оператор INPUT" размером в 2 Кб и с предельным функционалом (ни один из Бейсиков не позволит ввести текст объёмом в десятки килобайт оператором INPUT). А через CALLBACK можно и производить всё остальное: Чтение/запись НГМД, поиск/замена по шаблону, трансляция/компиляция текста и т.д.

Размер в 2 Кб - позволяет прошить «Победит» в ПЗУ и вызывать его отовсюду, где это может потребоваться:

  • Форт

  • Лого

  • Паскаль

  • Си

P.S.: Получается, «Победит» - не "текстовый редактор", а "редактор текстового буфера".
P.P.S.: Недавно пытался подправить «Победит» под работу с "теневыми страницами" (как у К580ВМ1), но код в итоге вырос на 33 байта, что выходит за рамки 2048 под ПЗУ: Требуется пожертвовать производительностью процедур прокрутки экрана…



15

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Alikberov, повторю своё предложение - с удовольствием бы опубликовал в журнале Вашу статью про этот редактор в частности и про "Радио-86РК" вообще.



16

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

uav1606 пишет:

Alikberov, повторю своё предложение - с удовольствием бы опубликовал в журнале Вашу статью про этот редактор в частности и про "Радио-86РК" вообще.

Да, я помню. Спасибо!

На РАДИО-86РК люблю проводить различные эксперименты.
"Победит" - просто программный код.
Но я также:

  • Проигрыватель видео попробовал написать (кажется, о нём уже многие знают)

  • Отладчик+дизассемблер, размещаемые прямо в ПЗУ (код отлажен и основные игры вполне работают)

  • Пытаюсь написать, если не подобие, то хотя бы пародию на "Wham!" от ZX-Spectrum

  • Жёстким программным хаком ВГ75 добился почти графического режима, но не отладил ещё

Тем для публикации хватит. wink
Только вот получится в один абзац. roll

На данный момент жду доставки ИМС LM1881 или К174ХА11, чтобы попробовать совместить композитное видео с кабельного канала с сигналом от РАДИО-86РК.
Схему уже придумал, осталось проверить в рамках "OSD с помощью РК".
Тоже очень любопытная тема (для меня), так как мечтал в детстве обрабатывать видео. big_smile

P.S.: Может пока затронуть соседнюю тему? smile
Может кого-то заинтересует "практическая мистика" на винтажном ноутбуке. big_smile
На РАДИО-86РК тоже есть аналогичная программа, но работает только в ручном режиме: Автоматический алгоритм только вот думаю начинать писать.

Отредактировано Alikberov (10-01-2025 15:37:02)



17

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Alikberov пишет:

Только вот получится в один абзац.

А почему в один абзац?
Ведь тут даже если Ваши посты взять, то уже на вполне солидную статью набирается.



18

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Alikberov пишет:

На данный момент жду доставки ИМС LM1881 или К174ХА11, чтобы попробовать совместить композитное видео с кабельного канала с сигналом от РАДИО-86РК.
Схему уже придумал, осталось проверить в рамках "OSD с помощью РК".
Тоже очень любопытная тема (для меня), так как мечтал в детстве обрабатывать видео. big_smile

Очень было бы интересно почитать. То, что бытовые компьютеры использовали телевизиощики, многие писали, а вот как оно реально делалось - интересно поглядеть.



19

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Andrei88 пишет:

Очень было бы интересно почитать. То, что бытовые компьютеры использовали телевизиощики, многие писали, а вот как оно реально делалось - интересно поглядеть.

Это очень долгая история. В том смысле, что ещё с 90-х я мечтал занимиматься обработкой видео, но лишь в прошлом году нашёл качественно простой приём, чтобы видеоузел РАДИО-86РК синхронизировать с внешним источником сигнала. То есть, всё ещё на уровне теории. big_smile



20

Re: Текстовый редактор "ПОБЕДИТ" для Радио-86РК

Alikberov пишет:

То есть, всё ещё на уровне теории. big_smile

Так никто и не говорит "Уважаемый Alikberov, к следующему номеру ждем законченную разработку" :-) Когда получится - тогда получится. Просто действительно интересно посмотреть результаты. Реально помню только заставки местного телевидения - возможно, компьютрные и когда-то видел ролик "В наших глазах", где на видео концерта был наложен, так сказать, антимированный текст.