mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Convert (hopefully correctly) the IBM writables.
This commit is contained in:
11
mkninja.sh
11
mkninja.sh
@@ -366,6 +366,17 @@ WRITABLES="\
|
||||
brother120 \
|
||||
brother240 \
|
||||
ibm1440 \
|
||||
ibm720 \
|
||||
commodore1581 \
|
||||
hplif770 \
|
||||
atarist360 \
|
||||
atarist370 \
|
||||
atarist400 \
|
||||
atarist410 \
|
||||
atarist720 \
|
||||
atarist740 \
|
||||
atarist800 \
|
||||
atarist820 \
|
||||
macintosh \
|
||||
"
|
||||
|
||||
|
||||
@@ -1,287 +0,0 @@
|
||||
#include "globals.h"
|
||||
#include "flags.h"
|
||||
#include "decoders/decoders.h"
|
||||
#include "encoders/encoders.h"
|
||||
#include "ibm/ibm.h"
|
||||
#include "writer.h"
|
||||
#include "fmt/format.h"
|
||||
#include <fstream>
|
||||
|
||||
static FlagGroup flags { &writerFlags };
|
||||
|
||||
static IntFlag trackLengthMs(
|
||||
{ "--ibm-track-length-ms" },
|
||||
"Length of a track in milliseconds.",
|
||||
0);
|
||||
|
||||
static IntFlag sectorSize(
|
||||
{ "--ibm-sector-size" },
|
||||
"Size of the sectors to write (bytes).",
|
||||
0);
|
||||
|
||||
static BoolFlag emitIam(
|
||||
{ "--ibm-emit-iam" },
|
||||
"Whether to emit an IAM record at the start of the track.",
|
||||
false);
|
||||
|
||||
static IntFlag startSectorId(
|
||||
{ "--ibm-start-sector-id" },
|
||||
"Sector ID of first sector.",
|
||||
1);
|
||||
|
||||
static IntFlag clockRateKhz(
|
||||
{ "--ibm-clock-rate-khz" },
|
||||
"Clock rate of data to write.",
|
||||
0);
|
||||
|
||||
static BoolFlag useFm(
|
||||
{ "--ibm-use-fm" },
|
||||
"Write in FM mode, rather than MFM.",
|
||||
false);
|
||||
|
||||
static HexIntFlag idamByte(
|
||||
{ "--ibm-idam-byte" },
|
||||
"16-bit RAW bit pattern to use for the IDAM ID byte",
|
||||
0);
|
||||
|
||||
static HexIntFlag damByte(
|
||||
{ "--ibm-dam-byte" },
|
||||
"16-bit RAW bit pattern to use for the DAM ID byte",
|
||||
0);
|
||||
|
||||
static IntFlag gap0(
|
||||
{ "--ibm-gap0-bytes" },
|
||||
"Size of gap 0 (the pre-index gap)",
|
||||
0);
|
||||
|
||||
static IntFlag gap1(
|
||||
{ "--ibm-gap1-bytes" },
|
||||
"Size of gap 1 (the post-index gap).",
|
||||
0);
|
||||
|
||||
static IntFlag gap2(
|
||||
{ "--ibm-gap2-bytes" },
|
||||
"Size of gap 2 (the post-ID gap).",
|
||||
0);
|
||||
|
||||
static IntFlag gap3(
|
||||
{ "--ibm-gap3-bytes" },
|
||||
"Size of gap 3 (the post-data or format gap).",
|
||||
0);
|
||||
|
||||
static StringFlag sectorSkew(
|
||||
{ "--ibm-sector-skew" },
|
||||
"Order to emit sectors.",
|
||||
"");
|
||||
|
||||
static BoolFlag swapSides(
|
||||
{ "--ibm-swap-sides" },
|
||||
"Swap sides while writing. Needed for Commodore 1581, CMD FD-2000, Thomson TO7.",
|
||||
false);
|
||||
|
||||
/* --- IBM disks ----------------------------------------------------------- */
|
||||
|
||||
static void set_ibm_defaults()
|
||||
{
|
||||
sectorSize.setDefaultValue(512);
|
||||
emitIam.setDefaultValue(true);
|
||||
idamByte.setDefaultValue(0x5554);
|
||||
damByte.setDefaultValue(0x5545);
|
||||
gap0.setDefaultValue(80);
|
||||
gap1.setDefaultValue(50);
|
||||
gap2.setDefaultValue(22);
|
||||
gap3.setDefaultValue(80);
|
||||
swapSides.setDefaultValue(false);
|
||||
}
|
||||
|
||||
static ActionFlag preset1440(
|
||||
{ "--ibm-preset-1440" },
|
||||
"Preset parameters to a PC 3.5\" 1440kB disk.",
|
||||
[] {
|
||||
setWriterDefaultInput(":c=80:h=2:s=18:b=512");
|
||||
trackLengthMs.setDefaultValue(200);
|
||||
clockRateKhz.setDefaultValue(500);
|
||||
sectorSkew.setDefaultValue("0123456789abcdefgh");
|
||||
set_ibm_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag preset720(
|
||||
{ "--ibm-preset-720" },
|
||||
"Preset parameters to a PC 3.5\" 720kB disk.",
|
||||
[] {
|
||||
setWriterDefaultInput(":c=80:h=2:s=9:b=512");
|
||||
trackLengthMs.setDefaultValue(200);
|
||||
clockRateKhz.setDefaultValue(250);
|
||||
sectorSkew.setDefaultValue("012345678");
|
||||
set_ibm_defaults();
|
||||
});
|
||||
|
||||
/* --- Commodore disks ----------------------------------------------------- */
|
||||
|
||||
static ActionFlag presetCBM1581(
|
||||
{ "--ibm-preset-commodore-1581" },
|
||||
"Preset parameters to a Commodore 3.5\" 800kB 1581 disk.",
|
||||
[] {
|
||||
setWriterDefaultInput(":c=80:h=2:s=10:b=512");
|
||||
trackLengthMs.setDefaultValue(200);
|
||||
sectorSize.setDefaultValue(512);
|
||||
startSectorId.setDefaultValue(1);
|
||||
emitIam.setDefaultValue(false);
|
||||
clockRateKhz.setDefaultValue(250);
|
||||
idamByte.setDefaultValue(0x5554);
|
||||
damByte.setDefaultValue(0x5545);
|
||||
gap0.setDefaultValue(80);
|
||||
gap1.setDefaultValue(80); //as emitIam is false this value remains unused
|
||||
gap2.setDefaultValue(22);
|
||||
gap3.setDefaultValue(34);
|
||||
sectorSkew.setDefaultValue("0123456789");
|
||||
swapSides.setDefaultValue(true);
|
||||
});
|
||||
|
||||
/* --- HP-LIF ----------------------------------------------------- */
|
||||
|
||||
static ActionFlag presetHPLIF770(
|
||||
{ "--ibm-preset-hp-lif-770" },
|
||||
"Preset parameters to a HP-LIF 3.5\" 770kB HP disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0-1:t=0-76");
|
||||
setWriterDefaultInput(":c=77:h=2:s=5:b=1024");
|
||||
trackLengthMs.setDefaultValue(200);
|
||||
sectorSize.setDefaultValue(1024);
|
||||
startSectorId.setDefaultValue(1);
|
||||
emitIam.setDefaultValue(true);
|
||||
clockRateKhz.setDefaultValue(250);
|
||||
idamByte.setDefaultValue(0x5554);
|
||||
damByte.setDefaultValue(0x5545);
|
||||
gap0.setDefaultValue(80);
|
||||
gap1.setDefaultValue(50); //as emitIam is false this value remains unused
|
||||
gap2.setDefaultValue(22);
|
||||
gap3.setDefaultValue(44);
|
||||
sectorSkew.setDefaultValue("01234");
|
||||
swapSides.setDefaultValue(false);
|
||||
});
|
||||
|
||||
/* --- Atari ST disks ------------------------------------------------------ */
|
||||
|
||||
static void set_atari_defaults()
|
||||
{
|
||||
trackLengthMs.setDefaultValue(200);
|
||||
sectorSize.setDefaultValue(512);
|
||||
startSectorId.setDefaultValue(1);
|
||||
emitIam.setDefaultValue(false);
|
||||
clockRateKhz.setDefaultValue(250);
|
||||
idamByte.setDefaultValue(0x5554);
|
||||
damByte.setDefaultValue(0x5545);
|
||||
gap0.setDefaultValue(80);
|
||||
gap1.setDefaultValue(80); //as emitIam is false this value remains unused
|
||||
gap2.setDefaultValue(22);
|
||||
gap3.setDefaultValue(34);
|
||||
swapSides.setDefaultValue(true);
|
||||
}
|
||||
|
||||
static ActionFlag presetAtariST360(
|
||||
{ "--ibm-preset-atarist-360" },
|
||||
"Preset parameters to an Atari ST 3.5\" 360kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0:t=0-79");
|
||||
setWriterDefaultInput(":c=80:h=1:s=9:b=512");
|
||||
sectorSkew.setDefaultValue("012345678");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag presetAtariST370(
|
||||
{ "--ibm-preset-atarist-380" },
|
||||
"Preset parameters to an Atari ST 3.5\" 370kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0:t=0-81");
|
||||
setWriterDefaultInput(":c=82:h=1:s=9:b=512");
|
||||
sectorSkew.setDefaultValue("012345678");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag presetAtariST400(
|
||||
{ "--ibm-preset-atarist-400" },
|
||||
"Preset parameters to an Atari ST 3.5\" 400kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0:t=0-79");
|
||||
setWriterDefaultInput(":c=80:h=1:s=10:b=512");
|
||||
sectorSkew.setDefaultValue("0123456789");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag presetAtariST410(
|
||||
{ "--ibm-preset-atarist-410" },
|
||||
"Preset parameters to an Atari ST 3.5\" 410kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0:t=0-81");
|
||||
setWriterDefaultInput(":c=82:h=1:s=10:b=512");
|
||||
sectorSkew.setDefaultValue("0123456789");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag presetAtariST720(
|
||||
{ "--ibm-preset-atarist-720" },
|
||||
"Preset parameters to an Atari ST 3.5\" 720kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0-1:t=0-79");
|
||||
setWriterDefaultInput(":c=80:h=2:s=9:b=512");
|
||||
sectorSkew.setDefaultValue("012345678");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag presetAtariST740(
|
||||
{ "--ibm-preset-atarist-740" },
|
||||
"Preset parameters to an Atari ST 3.5\" 740kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0-1:t=0-81");
|
||||
setWriterDefaultInput(":c=82:h=2:s=9:b=512");
|
||||
sectorSkew.setDefaultValue("012345678");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag presetAtariST800(
|
||||
{ "--ibm-preset-atarist-800" },
|
||||
"Preset parameters to an Atari ST 3.5\" 800kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0-1:t=0-79");
|
||||
setWriterDefaultInput(":c=80:h=2:s=10:b=512");
|
||||
sectorSkew.setDefaultValue("0123456789");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
static ActionFlag presetAtariST820(
|
||||
{ "--ibm-preset-atarist-820" },
|
||||
"Preset parameters to an Atari ST 3.5\" 820kB disk.",
|
||||
[] {
|
||||
setWriterDefaultDest(":d=0:s=0-1:t=0-81");
|
||||
setWriterDefaultInput(":c=82:h=2:s=10:b=512");
|
||||
sectorSkew.setDefaultValue("0123456789");
|
||||
set_atari_defaults();
|
||||
});
|
||||
|
||||
int mainWriteIbm(int argc, const char* argv[])
|
||||
{
|
||||
setWriterDefaultDest(":d=0:t=0-79:s=0-1");
|
||||
flags.parseFlags(argc, argv);
|
||||
|
||||
IbmParameters parameters;
|
||||
parameters.trackLengthMs = trackLengthMs;
|
||||
parameters.sectorSize = sectorSize;
|
||||
parameters.emitIam = emitIam;
|
||||
parameters.startSectorId = startSectorId;
|
||||
parameters.clockRateKhz = clockRateKhz;
|
||||
parameters.useFm = useFm;
|
||||
parameters.idamByte = idamByte;
|
||||
parameters.damByte = damByte;
|
||||
parameters.gap0 = gap0;
|
||||
parameters.gap1 = gap1;
|
||||
parameters.gap2 = gap2;
|
||||
parameters.gap3 = gap3;
|
||||
parameters.sectorSkew = sectorSkew;
|
||||
parameters.swapSides = swapSides;
|
||||
|
||||
IbmEncoder encoder(parameters);
|
||||
writeDiskCommand(encoder);
|
||||
|
||||
return 0;
|
||||
}
|
||||
43
src/writables/atarist360.textpb
Normal file
43
src/writables/atarist360.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist360.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 9
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 80
|
||||
sides: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "012345678"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 79
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 0
|
||||
}
|
||||
|
||||
43
src/writables/atarist370.textpb
Normal file
43
src/writables/atarist370.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist370.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 9
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 82
|
||||
sides: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "012345678"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 81
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 0
|
||||
}
|
||||
|
||||
43
src/writables/atarist400.textpb
Normal file
43
src/writables/atarist400.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist400.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 10
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 80
|
||||
sides: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "0123456789"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 79
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 0
|
||||
}
|
||||
|
||||
43
src/writables/atarist410.textpb
Normal file
43
src/writables/atarist410.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist410.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 10
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 82
|
||||
sides: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "0123456789"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 81
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 0
|
||||
}
|
||||
|
||||
43
src/writables/atarist720.textpb
Normal file
43
src/writables/atarist720.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist720.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 9
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 80
|
||||
sides: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "012345678"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 79
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
43
src/writables/atarist740.textpb
Normal file
43
src/writables/atarist740.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist740.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 9
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 82
|
||||
sides: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "012345678"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 81
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
43
src/writables/atarist800.textpb
Normal file
43
src/writables/atarist800.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist800.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 10
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 80
|
||||
sides: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "0123456789"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 79
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
43
src/writables/atarist820.textpb
Normal file
43
src/writables/atarist820.textpb
Normal file
@@ -0,0 +1,43 @@
|
||||
input {
|
||||
file {
|
||||
filename: "atarist820.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 10
|
||||
sector_size: 512
|
||||
}
|
||||
tracks: 82
|
||||
sides: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "0123456789"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 81
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
41
src/writables/commodore1581.textpb
Normal file
41
src/writables/commodore1581.textpb
Normal file
@@ -0,0 +1,41 @@
|
||||
input {
|
||||
file {
|
||||
filename: "commodore1581.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 10
|
||||
sector_size: 512
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
emit_iam: false
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 34
|
||||
sector_skew: "012345678"
|
||||
swap_sides: true
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 79
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
42
src/writables/hplif770.textpb
Normal file
42
src/writables/hplif770.textpb
Normal file
@@ -0,0 +1,42 @@
|
||||
input {
|
||||
file {
|
||||
filename: "hplif770.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 5
|
||||
sector_size: 1024
|
||||
}
|
||||
tracks: 77
|
||||
sides: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
sector_size: 1024
|
||||
gap0: 80
|
||||
gap2: 22
|
||||
gap3: 44
|
||||
sector_skew: "01234"
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 76
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
36
src/writables/ibm720.textpb
Normal file
36
src/writables/ibm720.textpb
Normal file
@@ -0,0 +1,36 @@
|
||||
input {
|
||||
file {
|
||||
filename: "ibm720.img"
|
||||
img {
|
||||
format {
|
||||
sectors: 9
|
||||
sector_size: 512
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
disk {
|
||||
drive {}
|
||||
}
|
||||
}
|
||||
|
||||
encoder {
|
||||
ibm {
|
||||
track_length_ms: 200
|
||||
clock_rate_khz: 250
|
||||
sector_skew: "012345678"
|
||||
}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 79
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user