Menu

Tree [db40e8] master /
 History

HTTPS access


File Date Author Commit
 .bundle 2022-11-03 weshatheleopard weshatheleopard [b8d546] bundle update; make bundler use local bundle ra...
 .circleci 2023-11-18 weshatheleopard weshatheleopard [5dfd6f] Update ruby to 3.1.4
 doc 2023-12-05 weshatheleopard weshatheleopard [879c47] Add loading of FM disks
 lib 2024-05-02 weshatheleopard weshatheleopard [db40e8] Code cleanup
 spec 2024-01-11 weshatheleopard weshatheleopard [e64fa3] Remove unnecessary context
 .gitignore 2022-11-08 weshatheleopard weshatheleopard [97e106] Add spec for disassembler
 .ruby-version 2023-11-18 weshatheleopard weshatheleopard [5dfd6f] Update ruby to 3.1.4
 Gemfile 2023-11-18 weshatheleopard weshatheleopard [5dfd6f] Update ruby to 3.1.4
 Gemfile.lock 2023-11-18 weshatheleopard weshatheleopard [5dfd6f] Update ruby to 3.1.4
 LICENSE 2019-10-15 weshatheleopard weshatheleopard [6cf77c] Initial commit
 README.md 2024-01-11 weshatheleopard weshatheleopard [599f22] Rename MagReader to TaperReader; add TapeReader...
 Rakefile 2021-07-20 weshatheleopard weshatheleopard [efe875] Add autocompletion to console

Read Me

bktools

All kinds of tools for BK-0010 (my personal project open for public to see)

CircleCI

Standard (ROM) tape format

Unlike some other renditions, this description has been derived from the analysis of the actual BK-0010 firmware.

The code that supports this format is located in the computer's ROM. No additional software is required to handle it.

Description of standard tape format.

Accelerated tape format "HELP7"

This format was supported by a number of application programs that had to be loaded first.

Description of HELP7 tape format.

Using this tool

Reading data from a WAV file

require 'mag_reader' ; m = TapeReader.new('name.wav', 50); m.read

Saving read file to disk

m.bk_file.save

Load file from the disk

f = BkFile.load "some_file_name"

Compare files and print discrepancies

f1 = BkFile.load "some_file_name"
f2 = BkFile.load "another_file_name"
f1.compare(f2)

Writing data to a WAV file

require 'mag_writer' ; writer = MagWriter.new(bk_file); writer.save('some_filename.wav')

Automatic splitting

In case you have one big WAV image of a magnetic tape with multiple files on it, there's a method that will split such file into a few WAV files corresponding to a standard-format tape file each.

require 'mag_reader' ; m = TapeReader.new('tape.wav', 50); m.split_tape

Reading floppy disks

Now this toolset supports reading data from floppy disks.

Experimental features

Display file as octal printout

bk_file.display

Display file as PDP-11 disassembly

bk_file.disassemble

Display labels instead of addresses

bk_file.disassemble_with_labels