Наконец-то дошли руки до битья кода редактора текста.
Представляемый здесь редактор является попыткой разработки с нуля всего кода с поддержкой некоторых современных фишек.
- Имеется поддержка горизонтальной прокрутки (клавиши 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) - с отладкой или без (это следует учитывать в случае записи в ПЗУ)
Небольшая поправка.
Статус программы «Победит» понижается с "текстового редактора" до "редактора текстового буфера".
Причины: Код программы писался в рамках общего проекта ЯВУ Бейсик как продвинутый оператор «INPUT», чтобы закрыть тему проблемы ввода текста навсегда.
Тем самым, «ПОБЕДИТ»:
- Не должен уметь загружать файл текста (в Бейсике оператор INPUT вообще только для простого ввода строки)
- Не должен уметь сохранять буфер текста в файл
- Не должен уметь производить поиск или замену по ключевому шаблону (ни INPUT Бейсика, ни READLN Паскаля такого функционала не включают)
- Может использоваться в таких пакетах, как ASSEMBLER, PASCAL, FORTH, подменяя построчный редактор текста «ED.MIKRON»
- Тем не менее, гибкости кода редактора хватает, чтобы быть оболочкой "верхнего уровня", откуда функциональными клавишами можно проделать всё то, чего в нём не хватает (поиск/замена слов, запуск трансляции, сохранение на диск и т.п.)