161eForth, версия 0.7b

Опубликован eForth 0.7b для МК-161.

Справка по R9000Справка по R9000

Немного поработал над справкой, расставив переносы. Справка стала гораздо дружелюбней и теперь работать с ней одно удовольствие. Также сделан перенос знака равенства на следующую строку, как принято в России. Можно сравнить снимки экрана с такими же от предыдущей версии.

В процессе работы над справкой нашёл несколько ошибок (грамматических и фактических) во встроенной справке MK.EXE, взятой мною за основу. Исправил их, а также расставил точки над «ё». Вся эта работа отражена в файле regs.txt, он находится в каталоге tools дистрибутива eForth. Там же лежит mkmkn.c — обновлённый инструмент для компиляции этого файла. Не нравится моя подсказка, можете лучше? Сделайте свою и пользуйтесь на здоровье.

Ещё одна ошибка в MK.EXE (последнюю версию не проверял) связана с передачей файла блокнота, последняя запись из которого не передаётся на ЭКВМ. Если надо передать 100 записей от 0 до 99, программа правильно пишет «100 записей», но передаёт лишь 99 записей с 0 по 98. В связи с этим в файл справки EFORTH.MKN я включил лишнюю последнюю запись — потеряется, не страшно.

При подготовке новой версии справки пришлось чуть усложнить реализацию NTYPE — вывода текстовой строки из блокнота на графический экран. Дело в том, что TYPE в eForth выводит все непечатные литеры (включая перевод строки), как литеру подчёркивания "_". Для вмешательства в это поведение добавлено ещё одно значение переменной 8BIT.

Запись 127 в переменную 8BIT приводит к переходу на 7-битные литеры и «убийству» русского алфавита. Это стандартное поведение eForth на других системах. Поскольку МК-161 — отечественная машинка, по умолчанию в переменной 8BIT хранится число 255. Это даёт возможность использовать весь набор символов ЭКВМ «из коробки», включая русские буквы.

Теперь если в 8BIT занести ноль, слова TYPE и EMIT вообще перестают проверять литеры и становятся «прозрачными» для всего, что приложение хочет вывести на индикатор или в последовательный порт. NTYPE на время своей работы сбрасывает 8BIT в ноль, а потом восстанавливает старое значение переменной. Это позволяет выводить из блокнота заранее отформатированные подсказки, в несколько строк.

Качать 161eForth 0.7b отсюда: http://the-hacker.ru/2019/161eforth0.7b.zip

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

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

Также новая технология позволит Каллисто-2 выводить тексты своих сообщений из блокнота. Напомню, что в Каллисто Классик вместо текста сообщения выводится его номер. Каллистянская нумерация сообщений взята из и практически совпадает с советской системой ФОРТ ИТЭФ (г. Москва).

Метки публикаций: