diff --git a/README.md b/README.md index d832ccd8..b569dd69 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ people who've had it work). | [Brother 120kB](doc/disk-brother.md) | 🦄 | 🦄 | | | [Brother 240kB](doc/disk-brother.md) | 🦄 | 🦄 | | | [Brother FB-100](doc/disk-fb100.md) | 🦖 | | Tandy Model 100, Husky Hunter, knitting machines | +| [Elektronika BK](doc/disk-bd.md) | 🦄 | 🦄 | Soviet Union PDP-11 clone | | [Macintosh 400kB/800kB](doc/disk-macintosh.md) | 🦄 | 🦄 | | | [NEC PC-98](doc/disk-ibm.md) | 🦄 | 🦄 | trimode drive not required | | [Sharp X68000](doc/disk-ibm.md) | 🦄 | 🦄 | | diff --git a/doc/disk-bk.md b/doc/disk-bk.md new file mode 100644 index 00000000..aa6d7d3d --- /dev/null +++ b/doc/disk-bk.md @@ -0,0 +1,37 @@ +Disk: Elektronica BK +==================== + +The BK (an abbreviation for бытовой компьютер --- 'home computer' in Russian) +is a Soviet era personal computer from Elektronika based on a PDP-11 +single-chip processor. It was the _only_ official, government approved home +computer in mass production at the time. + +It got a floppy interface in 1989 when the 128kB BK-0011 was released. This +used a relatively normal double-sided IBM scheme format with 80 sectors and ten +sectors per track, resulting in 800kB disks. The format is, in fact, identical +to the Atari ST 800kB format. Either 5.25" or 3.5" drives were used depending +on what was available at the time, with the same format on both. + +Reading disks +------------- + +Just do: + +``` +fluxengine read bk800 -o bk800.img +``` + +You should end up with an `bk800.img` containing all the sectors concatenated +one after the other in CHS order. This will work on both 5.25" and 3.5" drives. + +Writing disks +------------- + +Just do: + +``` +fluxengine write bk800 -i bk800.img +``` + +This will write the disk image to either a 5.25" or 3.5" drive. + diff --git a/mkninja.sh b/mkninja.sh index a0dd27c3..0b29a17e 100644 --- a/mkninja.sh +++ b/mkninja.sh @@ -523,6 +523,7 @@ FORMATS="\ ibm180 \ ibm360 \ ibm720 \ + bk800 \ mac400 \ mac800 \ micropolis143 \ @@ -664,6 +665,7 @@ encodedecodetest atarist720 encodedecodetest atarist740 encodedecodetest atarist800 encodedecodetest atarist820 +encodedecodetest bk800 encodedecodetest brother120 encodedecodetest brother240 encodedecodetest commodore1541 scripts/commodore1541_test.textpb diff --git a/src/formats/bk800.textpb b/src/formats/bk800.textpb new file mode 100644 index 00000000..b72a6090 --- /dev/null +++ b/src/formats/bk800.textpb @@ -0,0 +1,68 @@ +comment: 'BK 800kB 5.25"/3.5" 80-track 10-sector DSDD' + +image_reader { + filename: "bk800.img" + img { + tracks: 80 + sides: 2 + trackdata { + sector_size: 512 + sector_range { + start_sector: 1 + sector_count: 10 + } + } + } +} + +image_writer { + filename: "bk800.img" + img {} +} + +encoder { + ibm { + trackdata { + target_rotational_period_ms: 200 + target_clock_period_us: 4.0 + emit_iam: false + gap0: 80 + gap2: 22 + gap3: 34 + sectors { + sector: 1 + sector: 2 + sector: 3 + sector: 4 + sector: 5 + sector: 6 + sector: 7 + sector: 8 + sector: 9 + sector: 10 + } + } + } +} + +decoder { + ibm { + trackdata { + sector_range { + min_sector: 1 + max_sector: 10 + } + } + } +} + +tracks { + start: 0 + end: 79 +} + +heads { + start: 0 + end: 1 +} +