Author |
Message |
Alikberov
Doomed
Joined: 14 Oct 2019 18:10 Posts: 345 Location: Tashkent
|
Для РАДИО-86РК существует, как минимум, два текстовых редактора: Однако, на практике хотелось бы что-нибудь компактнее и с другой адресной посадкой. Ещё лучше, если код редактора уместился бы в другое ПЗУ, так как Монитор по директиве U уходит на адрес F000. Наконец-то дошли руки до битья кода редактора текста. Представляемый здесь редактор является попыткой разработки с нуля всего кода с поддержкой некоторых современных фишек. - Имеется поддержка горизонтальной прокрутки (клавиши F2/F4 или световое перо) длинных строк (как в NortonCommander)
- Вертикальная прокрутка курсорными клавишами или световым пером (мышью) на границах экрана
- Клавиши DEL/HOME/END конкретно в онлайн-эмуляторе работают по назначению
- Клавиши HOME/END на больших строчках срабатывают стандартно
Однако, на данный момент: - Выводится отладочная информация вверху (адрес строки; код токена и его индекс; шестнадцатеричное 24-битное представление целой/дробной части числа)
- Имеются местами глюки
Код очень капризный и сложный в отладке, так как разрабатывается всего несколько дней в рамках экспериментального интерпретатора. Редактор решил написать, чтобы отладить работу промежуточных подпрограмм умножения/деления 24-битных чисел и поиска ключевых слов/токенов. Потому, вверху можно видеть всю информацию. (Дробные части чисел E и PI представляются как B7E151 и 243F6A при наведении курсора на соответствующие позиции.)Весь код (редактора) занимает (сейчас) менее 2 Кб (адрес с 3000 по 34FF). Запустить и попробовать всё это безобразие можно по этой ссылке (прокрутка быстрее и до 254 позиций, но редактор ещё ограничен 127 символами на строку). ссылка на прошлый вариант с ограничением на 127 для сравнения скоростиДирективой G3000 Монитора производится запуск редактора. - Редактор работает с буфером текста по любому адресу, который можно предварительно указать в регистре DE через директиву X Монитора
- Весь код располагается по адресам 3000-34FF и запускается директивой G3000 Монитора
- Размер кода в 1280 байтов позволяет уместить его на дополнительном ПЗУ по адресам F000-F4FF
- Ячейка 3454 может принимать код FF (RST 7) или 00 (NOP) - с отладкой или без (это следует учитывать в случае записи в ПЗУ)
P.S.: Может кому-нибудь чем-то окажется полезным.
Last edited by Alikberov on 30 Apr 2023 12:32, edited 4 times in total.
|
05 Apr 2023 11:00 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
КРУТО!
Реально как будто РК имеет мышку.
|
07 Apr 2023 01:47 |
|
|
Alikberov
Doomed
Joined: 14 Oct 2019 18:10 Posts: 345 Location: Tashkent
|
- Повысилась скорость отображения буфера
- Число символов на строку может достигать 255
- Улучшена вставка табуляции
- Двойной клик мышки (светового пера) или клавиша F1 вызывает меню с передачей управления пользовательскому коду
- Код транслирован в область F000-F5FF и может быть прошит в ПЗУ с запуском директивой U стандартного Монитора
Вот ссылка для онлайн запуска.
|
09 Apr 2023 20:01 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А что будет происходить с экраном, если курсором вправо пойти редактировать за экран длинную строку, заканчивающуюся стрелкой => ? Сделайте такой скриншот, если не трудно...
_________________ iLavr
|
10 Apr 2023 04:36 |
|
|
Alikberov
Doomed
Joined: 14 Oct 2019 18:10 Posts: 345 Location: Tashkent
|
Всегда интересно было, как устроен редактор в Norton/Volcov Commander с поддержкой длинных строк. И вот, спустя 25 лет, удалось разработать подобный код и под РК. До 2 Кб осталось ровно 512 байтов. И вот думаю, что с ними делать? Если весь код в перспективе прошивать в дополнительное ПЗУ, нужно либо оставить там резервное пространство, либо дописать и устранить все причуды кода. A разве код по ссылке не запускается? Как говорилось выше, всё почти так, как в редакторе Norton Commander.
|
10 Apr 2023 08:01 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Спасибо! Это именно то, что я и ожидал увидеть! В своё время я интересовался, почему в ZX-Spectrum не сделали текстовый редактор по такому же принципу? Ответом мне было, что это - "лишнее тормозилово". Но выходит, что можно и попробовать сделать так!
_________________ iLavr
|
10 Apr 2023 09:35 |
|
|
Pyk
Maniac
Joined: 21 Jan 2003 04:08 Posts: 242
|
А можно в виде RK-файла посмотреть? Хочется попробовать в emu80 запустить...
_________________Эмулятор Emu80
|
11 Apr 2023 11:28 |
|
|
Alikberov
Doomed
Joined: 14 Oct 2019 18:10 Posts: 345 Location: Tashkent
|
|
11 Apr 2023 13:25 |
|
|
Alikberov
Doomed
Joined: 14 Oct 2019 18:10 Posts: 345 Location: Tashkent
|
Устранил несколько багов и выправил процедуры вставки новой строки и забоя. (Нужно ещё код подчистить от мёртвых инструкций.) Запустить онлайном можно здесь. В целом, код редактора занял практически 2 Кб. Всё же склоняюсь к варианту прошить его в дополнительное ПЗУ. Только нужно разобраться с механизмом размещения текста, чтобы корректно взаимодействовать с Ассемблером или Паскалем. Думаю, всё это можно спихнуть на пользовательский код, так как редактор ему передаёт всю информацию через регистры, что можно видеть в самом верху. Снизу - декодировка токенов, целых чисел и дробных частей.
|
12 Apr 2023 00:01 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
Боковой скроллинг -- просто ураган!
|
12 Apr 2023 01:29 |
|
|
Pyk
Maniac
Joined: 21 Jan 2003 04:08 Posts: 242
|
В Emu80 работает, клавиши не совпадают, правда. Ну и на реале скорее всего будет рассинхронизация позиции курсора со световым пером, но это нужно пробовать, точное значение смещения до сих пор на реале не проверено (хотя по опыту Кристы, кажется 8 символов).
Можно покритикую немного? Задумка отличная, но с производительностью просто беда какая-то, думаю, что стоит попытаться оптимизировать. Тот же скроллинг, например, можно сделать с использованием стековых операций.
Я еще в 90-х начинал делать что-то подобное, до конца не довел, но довольно шустрого скроллинга, помню, добиться удалось. Правда, то было для Партнера, там мне удалось кроме прочего переписать процедуру ввода с клавиатуры с использованием прерываний, так что во время задержки автоповтора клавиш редактор мог делать что-то полезное, например скроллить экран. На РК так не получится, но все равно можно попробовать также уменьшить задержку автоповтора и т.п. А вообще он тормозит даже при простом перемещении курсора по экрану, отображение служебной информации много времени отнимает?
_________________Эмулятор Emu80
|
12 Apr 2023 04:07 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А под Emu b2m у меня с первого захода рухнуло всё... Надо будет другие варианты эмулятора РК попробовать.
_________________ iLavr
|
12 Apr 2023 05:04 |
|
|
begoon
Senior
Joined: 22 Aug 2012 17:06 Posts: 144 Location: 188.220.42.216
|
Ага! Эмулятор rk86.ru называется
|
12 Apr 2023 05:23 |
|
|
Pyk
Maniac
Joined: 21 Jan 2003 04:08 Posts: 242
|
Странно, у меня запустился, может быть версия другая или как-то по-другому грузил? Кстати, еще она проблема с этим редактором - он использует все 30 строк текста и 72 символа в строке. Такое не факт что даже все мониторы смогу показать, про телевизор и не говорю. Надо бы убрать полезную информацию из области гашения. И если по вертикали можно запрограммировать ВГ75 на бОльшее количество строк, то по горизонтали придется наверное пожертвовать частью символов. Посмотреть на то, как будет выглядеть картинка на стандартном телевизоре, можно, нажав в Emu80 Alt-V.
_________________Эмулятор Emu80
|
12 Apr 2023 06:01 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Там несколько версий РК-86 же в меню. Выбрал самый первый. Ну а уж файл типа *.rkr я " как-то по-другому грузить" никак не мог... P.S. Но со второго захода всё заработало. Значит имел место "визит-эффект"...
_________________ iLavr
|
12 Apr 2023 09:40 |
|
|