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 Кб, 66 скачиваний с 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