Однофайловые приложения, работающие прямо в браузере (даже в 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-файл с БКшной программой, выставляем нужные параметры и получаем звуковой файл, который можно подать на магнитофонный вход БК и загрузить программу в компьютер. Алгоритм разработан Manwe/SandS, размещено здесь: http://thesands.ru/bk0010/wav-converter/
Установка пакета утилит описана выше.
Допустим, у нас есть БК-шный файл 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
Конвертер сделан по заказу Adam Bazaroff, помогает преобразовывать картинку, нарисованную в Photoshop с соблюдением палитры БК, в ассемблерный код (данные). Можно обрезать картинку, делая спрайт нужного размера.
Выбираем БКшные 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
- Нормально задокументировать код
- Перевести везде интерфейс на Vue.js
- Написать побольше автоматических тестов
- Написать новые утилиты и доработать функционал существующих :)
Мой сайт: www.zakirov.net
Предложения и замечания - на e-mail: lenar@zakirov.net