Утилиты для работы с магнитофонным портом компьютера БК-0010-01 (а также его файловым эквивалентом в эмуляторе GID)
Назначение проекта — инструменты для удобной загрузки в БК через магнитофонный вход бинарных файлов, файлов программ Бейсика, Фокала и просто блоков данных по 256 байт, подготовки файлов программ Бейсика, Фокала и текстовых данных для загрузки в эмулятор GID, обратного получения программ Бейсика и Фокала из файлов GID, а также декодирования полученных от БК бинарных и текстовых данных через линейный вход компьютера. Дополнительная функция — работа в качестве сервера для отправки в магнитофонный вход БК запрошенных через него же файлов данных (ответ по команде PRINT# данными для команды INPUT#).
Проект находится в разработке, в данный момент реализована отправка текстовых программ Бейсика и Фокала
- Полностью кроссплатформенное приложение, бинарные файлы для Windows, Linux, MacOS, а также версия для Android.
- Графический и консольный варианты для десктопных операционных систем — графические варианты управляются элементами форм, консольные — аргументами командной строки.
- При работе с отправкой/получением непосредственно БК — возможность выбрать конкретное звуковое устройство на вход и на выход.
Выполнет отправку на БК указанного бинарного файла через звуковое устройство
компьютера или планшета.
Возможности:
- Выбор звукового устройства, через которое будет идти отправка
- Указание имени для команды M файлу, который будет отправлен на БК (от 1 до 16 байт)
- Указание опции автостарта бинарного файла
Выполняет отправку на БК указанного файла программы через звуковое устройство (альтернативная версия функции — отправка в эмулятор GID указанного файла программы Бейсика через создание серии ASC-файлов)
Возможности:
- Указание имени для команды LOAD файлу, который будет отправлен на БК (от 1 до 6 байт)
- Возможность отправить вывод в WAV-файл вместо звукового устройства
Параметры запуска утилиты SendBasic:
Первый параметр программы - исходный файл с программой на Бейсике в кодировке KOI8R
Второй параметр - выходное значение.
- При формирования файлов ASC для эмулятора GID - это каталог, где будет создана серия ASC-файлов
- При формировании файла WAV для - это имя WAV-файла:
Далее идут в произвольном порядке аргументы настройки:
- /format=ASC|WAV - указывает тип выхода: серия ASC-файлов для GID или WAV-файл (по умолчанию формируется серия ASC-файлов)
- /name=value - имя для команды LOAD (по умолчанию, равно PROG)
- /silentlen=num - длина в секундах для периодов тишины до и после значимых данных при формировании WAV-файла (для ASC-файлов игнорируется)
Загружать полученную серию ASC файлов в эмуляторе или WAV-файл через магнитофонный вход нужно командой
LOAD "NAME"
где NAME - значение, ранее переданное как параметр name
В файле BasicFormat.md содержится руководство по формату серии ASC-файлов для
программы на Бейсике, полученное опытным путем, а также особенности её конвертации
в WAV-файл.
Выполняет отправку на БК указанного файла программы через через звуковое устройство (предназначенного для команды CLOAD)
Возможности:
- Указание имени для команды CLOAD файлу, который будет отправлен на БК (от 1 до 6 байт)
- Возможность отправить вывод в WAV-файл вместо звукового устройства
Выполняет отправку на БК указанного текстового файла через звуковое устройство (альтернативная версия функции — отправка в эмулятор GID указанного текстового файла через создание серии DAT-файлов)
Возможности:
- Указание имени для команды OPEN файлу, который будет отправлен на БК (от 1 до 6 байт)
- Возможность отправить вывод в WAV-файл вместо звукового устройства
Выполняет получения файла программы через магнитофонный вход (альтернативная версия функции — склейка серии ASC-файлов, полученных от эмулятора GID)
В этом режиме, программа считывает данные с указанного аудиоустройства и декодирует программу Бейсика, записывая её в файл. В альтернативном режиме, просто выполняется склейка ASC-файлов в один общий файл
Возможности:
- Сохранение полученного файла в заданной кодировке
- Проверка контрольных сумм при использовании чтения с аудиовхода
В этом режиме, программа считывает данные с указанного аудиоустройства и декодирует текст, записывая его в файл.
Возможности:
- Сохранение полученного файла в заданной кодировке
- Проверка контрольных сумм
Выполняет отправку на БК указанного файла программы через звуковое устройство (альтернативная версия функции — отправка в эмулятор GID указанного файла программы Фкаоа через создание бинарного файла правильного формата)
Возможности:
- Указание имени для команды LIBRARY GET файлу, который будет отправлен на БК
- Возможность отправить вывод в WAV-файл вместо звукового устройства
Параметры запуска утилиты SendFocal:
Первый параметр программы - исходный файл с программой на Фокале в кодировке KOI8R
Второй параметр - выходной файл, в который будет сохранен BIN или WAV.
Далее идут в произвольном порядке аргументы настройки:
- /format=BIN|WAV - указывает тип выхода: BIN-файл для GID или WAV-файл (по умолчанию формируется BIN-файл)
- /name=value - имя для команды L G (по умолчанию, равно PROG, также игнорируется при формировании BIN-файла)
- /silentlen=num - длина в секундах для периодов тишины до и после значимых данных при формировании WAV-файла (для BIN-файла игнорируется)
Загружать полученный BIN-файл в эмуляторе или WAV-файл через магнитофонный вход нужно командой
L G NAME
где NAME - значение, ранее переданное как параметр name (в случае загрузки через WAV), или имя BIN-файла для расширения.
В файле FocalFormat.md содержится руководство по формату бинарного файла для
программы на Фокале, полученное опытным путем.
Выполняет получения файла программы через магнитофонный вход (альтернативная версия функции — преобразование BIN-файла, полученного от эмулятора GID)
В этом режиме, программа считывает данные с указанного аудиоустройства и декодирует программу Фокала, записывая её в файл. В альтернативном режиме, просто выполняется преобразование BIN в текст.
Возможности:
- Сохранение полученного файла в заданной кодировке
- Проверка контрольных сумм при использовании чтения с аудиовхода
Утилита работат как сервер для отправки в магнитофонный вход БК запрошенных через него же блоков данных (ответ по команде PRINT# данными для команды INPUT#). Проект можно запустить как фоновый процесс для обработки запросов, приходящих через звуковое устройство. После получения на входном аудиоустройстве звукового блока с именем запрошенного файла, программа отправляет этот файл в виде WAV-файла на выходное аудиоустройство, реализуя клиент-серверный подход. К этой функции прилагается шаблон кода Бейсика для отправки и получения файлов, использующий операторы PRINT# и INPUT#
Альтернативый режим работы с эмулятором GID - делает всё то же самое, но через обнаружение и создание файлов в каталоге BIN. Это позволит отладить программу Бейсика в эмуляторе.
Версии для Delphi компилируются через открытие проектов в подкаталогах src.
Для сборки версии FreePascal, нужно запустить пакетный файл из каталога build.
Для компиляции проекта нужно добавить в каталог src\classes файл версии Version.pas.
При работе из репозитория git данный файл создаётся вызовом скрипта
scripts\update_version.bat, в противном случае его нужно создать самому по примеру:
unit Version ;
interface
type TGitVersion = class
const COMMIT = 'd6aac25e';
const BRANCH = 'main';
const TAG = 'v1.0.0';
end ;
implementation
end.