bk-utils

Utils for BK soviet computers

Usage no npm install needed!

<script type="module">
  import bkUtils from 'https://cdn.skypack.dev/bk-utils';
</script>

README

Утилиты для БК-0010(-01), БК-0011(М)

Однофайловые приложения, работающие прямо в браузере (даже в IE11!), призванные помочь в работе с советскими компьютерами серии БК.

Как пользоваться

Если вам нужно просто попользоваться утилитками и вы не хотите копаться в исходниках, то скачивать этот репозиторий из github не нужно.

Браузерную версию можно увидеть здесь: https://zakirov-net.github.io/bk-utils/

Для работы из командной строки (не все утилиты так работают) необходимо наличие в системе Node.js. Если он еще не установлен, нужно скачать последнюю LTS-версию с сайта https://nodejs.org (После установки в Windows может понадобиться перезагрузка компьютера).

Далее устанавливаем данный npm-пакет глобально командой:

npm install -g bk-utils

Все, теперь можно пользоваться, подробное описание утилит и их опций смотрите ниже.

Обновить npm-пакет можно так:

npm update -g bk-utils

Если вдруг обновление не происходит, попробуйте выполнить:

npm install -g bk-utils@latest

Конвертер .bin-файлов БК в .wav-файлы для загрузки через магнитофонный вход (wav-converter.html)

Собственно, из названия все понятно: берем .bin-файл с БКшной программой, выставляем нужные параметры и получаем звуковой файл, который можно подать на магнитофонный вход БК и загрузить программу в компьютер. Алгоритм разработан Manwe/SandS, размещено здесь: http://thesands.ru/bk0010/wav-converter/

Использование конвертера в wav из командной строки

Установка пакета утилит описана выше.

Допустим, у нас есть БК-шный файл example.bin и нужно сконвертировать его в звуковой файл, выполняем:

bk-utils-wav example.bin

В результате получим файл example.wav. Но это самый простой случай, вызов со всеми опциями выглядит так:

bk-utils-wav [--mode <MODE>] [--out file.wav] file.bin [file2.bin ...]

Режим (MODE) может быть одним из следующих:

  • bk10 - БК0010 3 МГц (Режим по умолчанию)
  • bk10boost - БК0010 3 МГц с доп. ускорением на 11%
  • bk11 - БК0011 4 МГц
  • bk11boost - БК0011 4 МГц с доп. ускорением на 11%
  • turbo - Режим с турбо-загрузчиком, максимальная скорость

Если задать опцию --out то далее идет имя записываемого звукового файла. Если не задавать, имя выходного файла сформируется из имени файла БКшного бинарника, только отбросится расширение .bin (если есть) и добавится .wav. Опция --out игнорируется, если на вход заданы имена нескольких файлов.

Допустимо задавать имена бинарников с использованием маски, вот более сложный пример, в котором мы хотим сконвертировать все имеющиеся в текущей папке bin-файлы в wav-файлы и они будут записаны в турбо-режиме:

bk-utils-wav --mode turbo *.bin

Вместо --mode и --out допустимо использовать более короткие варианты -m и -o соответственно:

bk-utils-wav -m bk10 -o myname.wav example.bin

Конвертирование картинки для БК (png, gif) в ассемблерный код (image-to-asm.html)

Конвертер сделан по заказу Adam Bazaroff, помогает преобразовывать картинку, нарисованную в Photoshop с соблюдением палитры БК, в ассемблерный код (данные). Можно обрезать картинку, делая спрайт нужного размера.

Упаковщик .bin-файлов БК в образ загружаемого диска MK-DOS (bkd.html)

Выбираем БКшные bin-файлы и скачиваем образ диска (.bkd) в фомате MK-DOS с выбранными бинарниками на нем и загрузчиком операционной системы. В будущем планируется поддержка других ОС, например, ANDOS и CSI-DOS.

Использование упаковщика из командной строки

Установка пакета описана выше.

Допустим, у нас есть БК-шный файл example.bin и нужно упаковать его в образ диска, выполняем:

bk-utils-bkd example.bin

В результате получим файл example.bkd.

Более сложный случай: хотим запаковать все файлы с расширениями .bin и .ovl в текущей папке в образ с именем mydisk.bkd, при этом нам не нужны загрузчик и файлы ОС, то есть хотим записать наши файлы на чистый диск, выполняем:

bk-utils-bkd --disk empty --out mydisk.bkd *.bin *.ovl

При этом на БК-шном диске у файлов .bin отрезается расширение, а .ovl файлы записываются как есть. Если не задавать опцию --out, то имя образа возьмется из имени первого удачно сохранившегося в образе файла и к нему добавится расширение .bkd.

Вместо --disk и --out допустимо использовать более короткие варианты -d и -o соответственно:

bk-utils-bkd -d empty -o mydisk.bkd *.bin *.ovl

Сборка проекта из исходников

Код скриптов собирается из typescript-файлов. Поэтому, если есть желание что-то исправить, сначала устанавливаем Node.js, затем в корне проекта набираем:

npm install

И ждем окончания установки пакетов. Затем для сборки js запускаем команду:

npm run build

Или для автоматической сборки после редактирования:

npm run watch

Прогон тестов:

npm run test

Для сборки утилит командной строки:

npm run build-cli

Для их автоматической сборки после редактирования:

npm run watch-cli

TODO

  • Нормально задокументировать код
  • Перевести везде интерфейс на Vue.js
  • Написать побольше автоматических тестов
  • Написать новые утилиты и доработать функционал существующих :)

Мой сайт: www.zakirov.net

Предложения и замечания - на e-mail: lenar@zakirov.net