Вход

Просмотр полной версии : Старый Новый Бейсик



Alikberov
14.01.2026, 00:00
Вашему вниманию предлагается одна из модификаций программы Бейсик-Микрон с рядом доработок:


; Данный вариант Бейсика имеет:
; 1. Сокращённую служебную область
; 1.1. 2E00-2EFF - служебные ячейки
; 2. Дополнительные операторы
; 3.1. AUTO$($) - токенизация математического выражения
; 2.2. DEF PEEK|POKE|USR=n - предопределение страниц памяти
; 2.3. DEF#f $ [FOR INPUT] - открытие файла
; 2.4. LIST#f - печать листинга в файл
; 2.5. MERGE /$/ - подгрузка листинга
; 2.6. ON STOP GOTO N - назначения обработчика ошибок
; 2.7. POKE addr,#f,count - запись в память из файла
; 2.8. POKE addr,$ - запись в память строки
; 2.9. PRINT#f - печать в файл
; 2.10. RESTORE#f seek - позиционирование файла
; 3. Дополнительные функции
; 3.1. FRE(f) - остаток байтов в читаемом файле
; 3.2. IF(?, true, false) - тернарное условие
; 3.3. IF$(?, true$, false$) - строковой вариант
; 3.4. INPUT$(n) - ввод пароля с клавиатуры
; 3.6. LEN(f) - длина файла
; 3.7. LINE - номер строки с ошибкой
; 3.9. NEXT($sub, $string [,start]) - поиск вхождения подстроки
; 3.10. ON(n, o1, o2, o3) - селектор множества
; 3.11. ON$(n, $1, $2; $?) - селектор множества
; 3.12. POS(f) - позиция в файле
; 3.13. READ(f) - чтение вещественного из файла или памяти
; 3.14. READ$(f) - чтение строки из файла или памяти
; 3.15. READ$($) - чтение директории файлов
; 3.16. STOP - код ошибки
; 3.17. VAL($) - вычисление токенизированного математического выражения
; 4. Метки и пользовательские операторы
; 4.1. @LABEL - Указание метки
; 4.2. GOTO @LABEL - Переход на метку
; 4.3. GOSUB @LABEL - Вызов подпрограммы по метке
; 4.4. ON N GOTO|GOSUB @LABEL1,@LABEL2,@LABEL3 - Селектор по меткам
; 4.5. _@USER 1,"/2/",3 - Оператор пользователя с тремя аргументами
; 4.6. PRINT ?,?,? - Чтение аргументов оператора пользователя

Бейсик работает только в каталоге /BASIC/ SD-Card и запускается из оболочки SD-BIOS.
После запуска загружается листинг /BASIC/AUTOLOAD.TXT автоматически с демонстрацией работы с файловой системой и метками.
Все листинги загружаются как обычные текстовые файлы директивой MERGE, что позволяет их предварительно разрабатывать в любом редакторе, типа Блокнота.

P.S.: Данный вариант является адаптацией под Северную Пальмиру и находится в стадии активной разработки.

yevrowl
14.01.2026, 03:11
Alikberov, спасибо за доработку Бейсика!

Подскажите пожалуйста, а запустится и будет ли корректно работать на ПК «Микро-80», «ЮТ-88» и «Специалист»?

Alikberov
14.01.2026, 16:00
Подскажите пожалуйста, а запустится и будет ли корректно работать на ПК «Микро-80», «ЮТ-88» и «Специалист»?
Поддерживать многие сторонние архитектуры, с которыми никак не пересекался, сложно и накладно.

За основу брал Бейсик от «КР-04», прогонял его дизассемблером и несколько месяцев стабилизировал из-за обилия магии и прочих нюансов.
В основе лежит Альтаир-Бейсик (https://github.com/option8/Altair-BASIC) практически полностью.
Однако, по косвенным признакам - Бейсик от «Орион-128» более ровнее и удобнее для адаптации.

При адаптации под «Северную Пальмиру» ставилось несколько задач:

Исправить назначение клавиши «Забой» и добавить навигацию стрелками вверх/вниз для строк, длиннее 64 символов
Добавить поддержку файловой системы
Расширить функциональный набор, оглядываясь на «GW-BASIC (http://www.antonis.de/qbebooks/gwbasman/)»


P.S.: На «Радио-86РК» данный вариант работает, если пользоваться аккуратно.