Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Утилиты для работы с магнитофонным портом компьютера БК-0010-01 (а также его файловым эквивалентом в эмуляторе GID)

Назначение проекта — инструменты для удобной загрузки в БК через магнитофонный вход бинарных файлов, файлов программ Бейсика, Фокала и просто блоков данных по 256 байт, подготовки файлов программ Бейсика, Фокала и текстовых данных для загрузки в эмулятор GID, обратного получения программ Бейсика и Фокала из файлов GID, а также декодирования полученных от БК бинарных и текстовых данных через линейный вход компьютера. Дополнительная функция — работа в качестве сервера для отправки в магнитофонный вход БК запрошенных через него же файлов данных (ответ по команде PRINT# данными для команды INPUT#).

Проект находится в разработке, в данный момент реализована отправка текстовых программ Бейсика и Фокала

Преимущества и возможности проекта

  • Полностью кроссплатформенное приложение, бинарные файлы для Windows, Linux, MacOS, а также версия для Android.
  • Графический и консольный варианты для десктопных операционных систем — графические варианты управляются элементами форм, консольные — аргументами командной строки.
  • При работе с отправкой/получением непосредственно БК — возможность выбрать конкретное звуковое устройство на вход и на выход.

Утилита отправки бинарного файла

Выполнет отправку на БК указанного бинарного файла через звуковое устройство компьютера или планшета.
Возможности:

  1. Выбор звукового устройства, через которое будет идти отправка
  2. Указание имени для команды M файлу, который будет отправлен на БК (от 1 до 16 байт)
  3. Указание опции автостарта бинарного файла

Утилита отправки текстовой программы Бейсика

Выполняет отправку на БК указанного файла программы через звуковое устройство (альтернативная версия функции — отправка в эмулятор GID указанного файла программы Бейсика через создание серии ASC-файлов)
Возможности:

  1. Указание имени для команды LOAD файлу, который будет отправлен на БК (от 1 до 6 байт)
  2. Возможность отправить вывод в WAV-файл вместо звукового устройства

Параметры запуска утилиты SendBasic:
Первый параметр программы - исходный файл с программой на Бейсике в кодировке KOI8R
Второй параметр - выходное значение.

  1. При формирования файлов ASC для эмулятора GID - это каталог, где будет создана серия ASC-файлов
  2. При формировании файла 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)
Возможности:

  1. Указание имени для команды CLOAD файлу, который будет отправлен на БК (от 1 до 6 байт)
  2. Возможность отправить вывод в WAV-файл вместо звукового устройства

Утилита отправки текстового файла для чтения в Бейсике

Выполняет отправку на БК указанного текстового файла через звуковое устройство (альтернативная версия функции — отправка в эмулятор GID указанного текстового файла через создание серии DAT-файлов)
Возможности:

  1. Указание имени для команды OPEN файлу, который будет отправлен на БК (от 1 до 6 байт)
  2. Возможность отправить вывод в WAV-файл вместо звукового устройства

Утилита получения файла программы Бейсика

Выполняет получения файла программы через магнитофонный вход (альтернативная версия функции — склейка серии ASC-файлов, полученных от эмулятора GID)
В этом режиме, программа считывает данные с указанного аудиоустройства и декодирует программу Бейсика, записывая её в файл. В альтернативном режиме, просто выполняется склейка ASC-файлов в один общий файл
Возможности:

  1. Сохранение полученного файла в заданной кодировке
  2. Проверка контрольных сумм при использовании чтения с аудиовхода

Утилита получение файла произвольных текстовых данных

В этом режиме, программа считывает данные с указанного аудиоустройства и декодирует текст, записывая его в файл.
Возможности:

  1. Сохранение полученного файла в заданной кодировке
  2. Проверка контрольных сумм

Утилита отправки текстовой программы Фокала

Выполняет отправку на БК указанного файла программы через звуковое устройство (альтернативная версия функции — отправка в эмулятор GID указанного файла программы Фкаоа через создание бинарного файла правильного формата)
Возможности:

  1. Указание имени для команды LIBRARY GET файлу, который будет отправлен на БК
  2. Возможность отправить вывод в 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 в текст.
Возможности:

  1. Сохранение полученного файла в заданной кодировке
  2. Проверка контрольных сумм при использовании чтения с аудиовхода

Дополнительный режим - клиент-сервер для порта

Утилита работат как сервер для отправки в магнитофонный вход БК запрошенных через него же блоков данных (ответ по команде 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.

About

A set of utilities for working with the computer's tape port BK-0010-01

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages