nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 13:29



Reply to topic  [ 84 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next
Текстовый редактор ПОБЕДИТ 
Author Message
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 273
Location: Tashkent
Reply with quote
Для РАДИО-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.: Может кому-нибудь чем-то окажется полезным.


Attachments:
File comment: Скриншот редактора
rk86-light-editor.png
rk86-light-editor.png [ 36.55 KiB | Viewed 7267 times ]


Last edited by Alikberov on 30 Apr 2023 12:32, edited 4 times in total.

05 Apr 2023 11:00
Profile WWW
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
КРУТО!

Реально как будто РК имеет мышку.


07 Apr 2023 01:47
Profile
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 273
Location: Tashkent
Reply with quote
  • Повысилась скорость отображения буфера
  • Число символов на строку может достигать 255
  • Улучшена вставка табуляции
  • Двойной клик мышки (светового пера) или клавиша F1 вызывает меню с передачей управления пользовательскому коду
  • Код транслирован в область F000-F5FF и может быть прошит в ПЗУ с запуском директивой U стандартного Монитора
Вот ссылка для онлайн запуска.


Attachments:
File comment: Скриншот редактора
rk86-light-editor.png
rk86-light-editor.png [ 36.99 KiB | Viewed 7254 times ]
09 Apr 2023 20:01
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А что будет происходить с экраном, если курсором вправо пойти редактировать за экран длинную строку,
заканчивающуюся стрелкой => ?
Сделайте такой скриншот, если не трудно...

_________________
iLavr


10 Apr 2023 04:36
Profile
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 273
Location: Tashkent
Reply with quote
Всегда интересно было, как устроен редактор в Norton/Volcov Commander с поддержкой длинных строк.
И вот, спустя 25 лет, удалось разработать подобный код и под РК. 8)

До 2 Кб осталось ровно 512 байтов. И вот думаю, что с ними делать?
Если весь код в перспективе прошивать в дополнительное ПЗУ, нужно либо оставить там резервное пространство, либо дописать и устранить все причуды кода.
Lavr wrote:
А что будет происходить с экраном, если курсором вправо пойти редактировать за экран длинную строку,
заканчивающуюся стрелкой => ?
A разве код по ссылке не запускается?
Lavr wrote:
Сделайте такой скриншот, если не трудно...
Как говорилось выше, всё почти так, как в редакторе Norton Commander.


Attachments:
File comment: Прокрутка на 1 позицию
rk86-light-editor-pan1.png
rk86-light-editor-pan1.png [ 36.93 KiB | Viewed 7213 times ]
10 Apr 2023 08:01
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Alikberov wrote:
Lavr wrote:
А что будет происходить с экраном, если курсором вправо пойти редактировать за экран длинную строку,
заканчивающуюся стрелкой => ?
A разве код по ссылке не запускается?
Lavr wrote:
Сделайте такой скриншот, если не трудно...
Как говорилось выше, всё почти так, как в редакторе Norton Commander.
Image

Спасибо! Это именно то, что я и ожидал увидеть! :kruto:

В своё время я интересовался, почему в ZX-Spectrum не сделали текстовый редактор по такому же принципу?

Image

Ответом мне было, что это - "лишнее тормозилово". :-?

Но выходит, что можно и попробовать сделать так!

_________________
iLavr


10 Apr 2023 09:35
Profile
Maniac

Joined: 21 Jan 2003 04:08
Posts: 222
Reply with quote
А можно в виде RK-файла посмотреть? Хочется попробовать в emu80 запустить...

_________________
Эмулятор Emu80


11 Apr 2023 11:28
Profile ICQ WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 273
Location: Tashkent
Reply with quote
Pyk wrote:
А можно в виде RK-файла посмотреть? Хочется попробовать в emu80 запустить...


Attachments:
File comment: Внимание!
Код подкорректирован в качестве альфа-версии, специально под просьбу

rk86-light-editor-alpha.rkr.zip [4.21 KiB]
Downloaded 165 times
11 Apr 2023 13:25
Profile WWW
Maniac
User avatar

Joined: 14 Oct 2019 18:10
Posts: 273
Location: Tashkent
Reply with quote
Устранил несколько багов и выправил процедуры вставки новой строки и забоя.
(Нужно ещё код подчистить от мёртвых инструкций.)

Запустить онлайном можно здесь.
В целом, код редактора занял практически 2 Кб.

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

Думаю, всё это можно спихнуть на пользовательский код, так как редактор ему передаёт всю информацию через регистры, что можно видеть в самом верху.
Снизу - декодировка токенов, целых чисел и дробных частей.


Attachments:
File comment: Загрузочный rkr-файл для оценки производительности в других эмуляторах
После запуска G0 через директиву X выставите PC=800 и DE=2100

rk86-light-editor-alpha1.rkr.zip [4.56 KiB]
Downloaded 184 times
12 Apr 2023 00:01
Profile WWW
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Боковой скроллинг -- просто ураган! :kruto:


12 Apr 2023 01:29
Profile
Maniac

Joined: 21 Jan 2003 04:08
Posts: 222
Reply with quote
В Emu80 работает, клавиши не совпадают, правда.
Ну и на реале скорее всего будет рассинхронизация позиции курсора со световым пером, но это нужно пробовать, точное значение смещения до сих пор на реале не проверено (хотя по опыту Кристы, кажется 8 символов).

Можно покритикую немного? Задумка отличная, но с производительностью просто беда какая-то, думаю, что стоит попытаться оптимизировать. Тот же скроллинг, например, можно сделать с использованием стековых операций.

Я еще в 90-х начинал делать что-то подобное, до конца не довел, но довольно шустрого скроллинга, помню, добиться удалось. Правда, то было для Партнера, там мне удалось кроме прочего переписать процедуру ввода с клавиатуры с использованием прерываний, так что во время задержки автоповтора клавиш редактор мог делать что-то полезное, например скроллить экран. На РК так не получится, но все равно можно попробовать также уменьшить задержку автоповтора и т.п. А вообще он тормозит даже при простом перемещении курсора по экрану, отображение служебной информации много времени отнимает?

_________________
Эмулятор Emu80


12 Apr 2023 04:07
Profile ICQ WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Pyk wrote:
В Emu80 работает, ...

А под Emu b2m у меня с первого захода рухнуло всё... :-?
Attachment:
scr_b2m.PNG
scr_b2m.PNG [ 61.67 KiB | Viewed 7012 times ]

Надо будет другие варианты эмулятора РК попробовать.

_________________
iLavr


12 Apr 2023 05:04
Profile
Senior

Joined: 22 Aug 2012 17:06
Posts: 144
Location: 188.220.42.216
Reply with quote
Lavr wrote:
Надо будет другие варианты эмулятора РК попробовать.

Ага! Эмулятор rk86.ru называется :-)


12 Apr 2023 05:23
Profile
Maniac

Joined: 21 Jan 2003 04:08
Posts: 222
Reply with quote
Lavr wrote:
А под Emu b2m у меня с первого захода рухнуло всё... :-?

Странно, у меня запустился, может быть версия другая или как-то по-другому грузил?

Кстати, еще она проблема с этим редактором - он использует все 30 строк текста и 72 символа в строке.
Такое не факт что даже все мониторы смогу показать, про телевизор и не говорю.
Надо бы убрать полезную информацию из области гашения.
И если по вертикали можно запрограммировать ВГ75 на бОльшее количество строк, то по горизонтали придется наверное пожертвовать частью символов. Посмотреть на то, как будет выглядеть картинка на стандартном телевизоре, можно, нажав в Emu80 Alt-V.

_________________
Эмулятор Emu80


12 Apr 2023 06:01
Profile ICQ WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Pyk wrote:
Lavr wrote:
А под Emu b2m у меня с первого захода рухнуло всё... :-?
Странно, у меня запустился, может быть версия другая или как-то по-другому грузил?

Там несколько версий РК-86 же в меню. Выбрал самый первый.
Ну а уж файл типа *.rkr я "как-то по-другому грузить" никак не мог... :wink:


P.S. Но со второго захода всё заработало. Значит имел место "визит-эффект"... :wink:
Attachment:
scr_b2m2.PNG
scr_b2m2.PNG [ 39.48 KiB | Viewed 6971 times ]

_________________
iLavr


12 Apr 2023 09:40
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 84 posts ]  Go to page 1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 5 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.