diff --git a/arch/ibm/decoder.cc b/arch/ibm/decoder.cc index 245c27fc..138a9341 100644 --- a/arch/ibm/decoder.cc +++ b/arch/ibm/decoder.cc @@ -138,7 +138,7 @@ void IbmDecoder::decodeSectorRecord() br.read_8(); /* skip ID byte */ _sector->logicalTrack = br.read_8(); _sector->logicalSide = br.read_8(); - _sector->logicalSector = br.read_8() - _config.sector_base(); + _sector->logicalSector = br.read_8() - _config.sector_id_base(); _currentSectorSize = 1 << (br.read_8() + 7); uint16_t wantCrc = br.read_be16(); uint16_t gotCrc = crc16(CCITT_POLY, bytes.slice(0, _currentHeaderLength + 5)); diff --git a/arch/ibm/ibm.proto b/arch/ibm/ibm.proto index b218f53f..12bce43a 100644 --- a/arch/ibm/ibm.proto +++ b/arch/ibm/ibm.proto @@ -3,9 +3,12 @@ syntax = "proto2"; import "lib/common.proto"; message IBMInputProto { - optional int32 sector_base = 1 [default=0]; - optional bool ignore_side_byte = 2 [default=false]; - optional RangeProto required_sectors = 3; + optional int32 sector_id_base = 1 [default = 1, + (help) = "ID of first sector"]; + optional bool ignore_side_byte = 2 [default = false, + (help) = "ignore side byte in sector header"]; + optional RangeProto required_sectors = 3 [ + (help) = "require these sectors to exist for a good read"]; } message IBMOutputProto { diff --git a/mkninja.sh b/mkninja.sh index b61ff5de..7384d5c6 100644 --- a/mkninja.sh +++ b/mkninja.sh @@ -346,6 +346,7 @@ READABLES="\ acornadfs \ acorndfs \ aeslanier \ + ampro \ amiga \ brother \ c64 \ diff --git a/src/fe-readampro.cc b/src/fe-readampro.cc deleted file mode 100644 index d818e10d..00000000 --- a/src/fe-readampro.cc +++ /dev/null @@ -1,15 +0,0 @@ -#include "globals.h" -#include "reader.h" -#include "ibm/ibm.h" -#include "fmt/format.h" -#include "readibm.h" - -int mainReadAmpro(int argc, const char* argv[]) -{ - setReaderDefaultSource(":t=0-79:s=0"); - setReaderDefaultOutput("ampro.adf"); - setReaderRevolutions(2); - sectorIdBase.setDefaultValue(17); - return mainReadIBM(argc, argv); -} - diff --git a/src/readables/acornadfs.textpb b/src/readables/acornadfs.textpb index f1269d1f..e379fe1b 100644 --- a/src/readables/acornadfs.textpb +++ b/src/readables/acornadfs.textpb @@ -13,7 +13,7 @@ output { decoder { ibm { - sector_base: 0 + sector_id_base: 0 } } diff --git a/src/readables/acorndfs.textpb b/src/readables/acorndfs.textpb index 30706c2c..e3da75ce 100644 --- a/src/readables/acorndfs.textpb +++ b/src/readables/acorndfs.textpb @@ -13,7 +13,7 @@ output { decoder { ibm { - sector_base: 0 + sector_id_base: 0 } } diff --git a/src/readables/ampro.textpb b/src/readables/ampro.textpb new file mode 100644 index 00000000..a0a6b1b8 --- /dev/null +++ b/src/readables/ampro.textpb @@ -0,0 +1,30 @@ +input { + disk { + drive {} + } +} + +output { + file { + filename: "ampro.img" + img {} + } +} + +decoder { + ibm { + sector_id_base: 17 + } +} + +cylinders { + start: 0 + end: 79 +} + +heads { + start: 0 + end: 0 +} + +