bk-utils v0.3.0
Утилиты для БК-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-cliTODO
- Нормально задокументировать код
- Перевести везде интерфейс на Vue.js
- Написать побольше автоматических тестов
- Написать новые утилиты и доработать функционал существующих :)
Мой сайт: www.zakirov.net
Предложения и замечания - на e-mail: lenar@zakirov.net