﻿Кросс-ассемблер BKTurbo8 для БК-0010(01),БК-0011(М)
(с) 2016-2025 gid

Использование:
BKTurbo8 -h (--help)
  Вывод этой справки.

BKTurbo8 -v (--version)
  Показать информацию о версии.

Имеется два режима работы. Режим компиляции, с созданием объектных модулей
и исполняемого файла. И режим линковки объектных модулей.

1. Режим компиляции.
BKTurbo8 [-i<c>][-d][-r|-x][-l[name]][-o[name]][-s<0addr>] <cmd> <file_1 *[ file_n]>
  -i<c> (--input <c>) - задать кодировку исходного файла.
      Возможные кодировки:
        a - автоопределение (по умолчанию)
        k - KOI8-R
        o - OEM CP866
        w - ANSI CP1251
        8 - UTF8
        u - UNICODE UTF16LE
  Если автоопределение определило кодировку некорректно, необходимо задать
верную кодировку данным ключом.
  -d (--details) - вывод большего количества информации на экран.
      На данный момент дополнительно выводится таблица меток программы.

  -r (--raw) - создавать просто бинарный массив, не использовать формат .bin.

  -x (--sav) - создавать файл в формате sav. Этот ключ отменяет действие
      ключа -r и имеет более высокий приоритет. Создаётся простой sav файл
      без заголовка bin.

  -l[name] (--listing[=name]) - генерировать lst Файл.
      Если имя файла задано, то используется оно для генерации листинга, если
      нет - то берётся имя файла исходного текста.

  -o[name] (--object[=name]) - генерировать объектный файл.
      Если имя файла задано, то используется оно для генерации листинга, если
      нет - то берётся имя файла исходного текста.

  -t[name] (--table[=name]) - создавать особый объектный файл, в котором
      содержатся только глобальные метки. (См. документацию)

  -s<0addr> (--address <0addr>) - задать начальный адрес компиляции.
      Адрес задаётся в восьмеричном виде.

  <cmd> - команда компиляции:
      CO - полная компиляция. В результате при отсутствии ошибок создаётся
           бинарный исполняемый файл и опционально создаются объектные файлы,
           заданные соответствующими ключами.
      CL - компиляция в объектный файл для дальнейшей линковки с другими
           объектными файлами. В результате при отсутствии ошибок всегда
           создаётся объектный файл. Бинарный файл не создаётся.
      Файл листинга создаётся в любом случае. При наличии ошибок код ошибки
      и его текстовое пояснение помещаются перед строкой листинга, вызвавшей
      ошибку.
      В конец файла листинга записывается таблица глобальных меток, а также
      список ссылок на неопределённые метки, если они есть.

  <file_1 *[ file_n]> - список исходных файлов, перечисленных через пробел.
      Допускаются маски файлов.

2. Режим линковки.
BKTurbo8 [-d][-r|x][-l[name]][-o[name]][-s<0addr>] LI <outfile> <file_1 *[ file_n]>
  Ключ -i не используется.

  Ключи -d, -r, -x, -l, -o, -t и -s имеют тот же смысл, что и в режиме компиляции.

  Команда линковки - LI, за командой следует обязательное имя выходного файла
  <outfile>, маска файла не допускается. А затем список файлов объектных
  модулей.
  Листинг при этом не создаётся, потому что не из чего, но если задан ключ -l,
  в файл листинга сохраняется список меток, а так же список ссылок на 
  неопределённые метки, если они есть.

  <file_1 *[ file_n]> - список файлов объектных модулей, перечисленных через
      пробел. Допускаются маски файлов.


-------------------------------------------------------------------------------


Конвертер бинарных объектов в объектные модули кросс ассемблера Turbo8.
(с) 2016-2025 gid

Использование:
BKbin2obj -h (--help)
  Вывод этой справки.

BKbin2obj -v (--version)
  Показать информацию о версии.

BKbin2obj [-s<type>][-c][-t][-e[0bound]][-l<label_name>][-f<label_name>] <input_file_name> [output_file_name]
  -s<source> (--source <source>) - тип входного объекта.
    Возможные типы:
    bin - просто бинарный массив;
    img - картинка в формате BMP, GIF, JPEG, PNG и TIFF.

  -e[0bound] (--even[=0bound]) - выравнивание массива данных по границе блока.
    Если параметр не задан - делается выравнивание по границе слова.
    Параметр - число в восьмеричном виде. Предполагается, что число - степень
    двойки. Если задать произвольное число, результат будет совсем не тем, что
    ожидался.

  -l<label_name> (--label <label_name>) - задать имя метки. Если имя метки не
    задано, оно формируется из имени входного файла.

  -f<label_name> (--final <label_name>) - задать имя финальной метки в конце.
    Если задан ключ -e, то метка ставится в конце выравнивания.

  Ключи, действующие только при выборе типа img:
  -c (--color) - обрабатывать картинку как цветное изображение, иначе - чёрно-
    белое.

  -t (--transparency) - использование прозрачности.
    Алгоритмы преобразования взяты из проекта pdp11asm vinxru, один к одному,
    я даже не разбирался как они работают.

  input_file_name - входной файл.
  output_file_name - необязательное имя выходного файла, если нужно задать
  объектному файлу имя, отличное от входного.


-------------------------------------------------------------------------------


Кросс мультитул BKTools для БК-0010(01),БК-0011(М)
(с) 2017-2026 gid

Использование:
BKTools -h (--help)
  Вывод этой справки.

BKTools -v (--version)
  Показать информацию о версии.

BKTools -t<name> [-d][-l][-r][-u][-w<0addr>] <input_file_name> [output_file_name]
  -t<name> (--tool name) - выбор необходимого инструмента.
      name: BKPACK - упаковщик/распаковщик BKpack.
            BKCRUNCH - упаковщик/распаковщик Cruncher.

  -d (--data) - флаг упаковки данных, а не программы.
      По умолчанию упаковка программы.

  -l (--long) - использовать длинный автораспаковщик.
      По умолчанию - обычный короткий. Не знаю, пользовался ли кто либо
      когда-нибудь таким, но функционал сохранён.

  -r (--raw) - создавать просто файл, не использовать формат '.bin'.

  -u (--unpack) - распаковка запакованного файла.
      Если этот ключ не указан, производится упаковка в заданный архив.

  -w<0addr> (--work 0addr) - задать адрес рабочей области. Только для упаковки
      BKPack. Для простоты, задаётся адрес конца рабочей области, например 040000,
      если нужно, чтобы рабочая область располагалась перед областью экрана.

  input_file_name - входной файл.
  output_file_name - необязательное имя выходного файла, если нужно задать
      своё имя файла создаваемому новому файлу.
  По умолчанию, у выходного имени файла заменяется расширение на '.bkp'
  (или на '.bkfile' при распаковке) или добавляется, если его не было.
