diff --git a/arch/micropolis/micropolis.h b/arch/micropolis/micropolis.h index bdc31c63..8397ef25 100644 --- a/arch/micropolis/micropolis.h +++ b/arch/micropolis/micropolis.h @@ -1,5 +1,5 @@ -#ifndef ZILOGMCZ_H -#define ZILOGMCZ_H +#ifndef MICROPOLIS_H +#define MICROPOLIS_H #define MICROPOLIS_ENCODED_SECTOR_SIZE (1+2+266+6) diff --git a/arch/zilogmcz/zilogmcz.h b/arch/zilogmcz/zilogmcz.h index 49ca91c4..c0ab3e43 100644 --- a/arch/zilogmcz/zilogmcz.h +++ b/arch/zilogmcz/zilogmcz.h @@ -3,10 +3,12 @@ class Sector; class Fluxmap; +class ZilogMczInputProto; class ZilogMczDecoder : public AbstractDecoder { public: + ZilogMczDecoder(const ZilogMczInputProto&) {} virtual ~ZilogMczDecoder() {} RecordType advanceToNextRecord(); diff --git a/arch/zilogmcz/zilogmcz.proto b/arch/zilogmcz/zilogmcz.proto new file mode 100644 index 00000000..e6eb703c --- /dev/null +++ b/arch/zilogmcz/zilogmcz.proto @@ -0,0 +1,4 @@ +syntax = "proto2"; + +message ZilogMczInputProto {} + diff --git a/lib/decoders/decoders.cc b/lib/decoders/decoders.cc index fba8e181..de59606e 100644 --- a/lib/decoders/decoders.cc +++ b/lib/decoders/decoders.cc @@ -15,6 +15,7 @@ #include "arch/mx/mx.h" #include "arch/tids990/tids990.h" #include "arch/victor9k/victor9k.h" +#include "arch/zilogmcz/zilogmcz.h" #include "decoders/fluxmapreader.h" #include "record.h" #include "protocol.h" @@ -65,6 +66,9 @@ std::unique_ptr AbstractDecoder::create(const DecoderProto& con case DecoderProto::kVictor9K: return std::unique_ptr(new Victor9kDecoder(config.victor9k())); + case DecoderProto::kZilogmcz: + return std::unique_ptr(new ZilogMczDecoder(config.zilogmcz())); + default: Error() << "no input disk format specified"; } diff --git a/lib/decoders/decoders.proto b/lib/decoders/decoders.proto index bbe3b767..ad548b35 100644 --- a/lib/decoders/decoders.proto +++ b/lib/decoders/decoders.proto @@ -13,6 +13,7 @@ import "arch/micropolis/micropolis.proto"; import "arch/mx/mx.proto"; import "arch/tids990/tids990.proto"; import "arch/victor9k/victor9k.proto"; +import "arch/zilogmcz/zilogmcz.proto"; import "lib/common.proto"; message DecoderProto { @@ -39,6 +40,7 @@ message DecoderProto { MxInputProto mx = 15; Tids990InputProto tids990 = 16; Victor9kInputProto victor9k = 17; + ZilogMczInputProto zilogmcz = 18; } } diff --git a/mkninja.sh b/mkninja.sh index 009c93a5..62f29607 100644 --- a/mkninja.sh +++ b/mkninja.sh @@ -270,6 +270,7 @@ buildproto libproto.a \ arch/mx/mx.proto \ arch/tids990/tids990.proto \ arch/victor9k/victor9k.proto \ + arch/zilogmcz/zilogmcz.proto \ lib/common.proto \ lib/config.proto \ lib/decoders/decoders.proto \ @@ -365,6 +366,7 @@ READABLES="\ mx \ tids990 \ victor9k \ + zilogmcz \ " WRITABLES="\ @@ -427,8 +429,6 @@ buildlibrary libfrontend.a \ src/fe-writeflux.cc \ src/fluxengine.cc \ -# src/fe-readzilogmcz.cc \ - buildprogram fluxengine \ libfrontend.a \ libbackend.a \ diff --git a/src/fe-readzilogmcz.cc b/src/fe-readzilogmcz.cc deleted file mode 100644 index faf77428..00000000 --- a/src/fe-readzilogmcz.cc +++ /dev/null @@ -1,25 +0,0 @@ -#include "globals.h" -#include "flags.h" -#include "reader.h" -#include "fluxmap.h" -#include "decoders/decoders.h" -#include "sector.h" -#include "sectorset.h" -#include "record.h" -#include "zilogmcz/zilogmcz.h" -#include "fmt/format.h" - -static FlagGroup flags { &readerFlags }; - -int mainReadZilogMCZ(int argc, const char* argv[]) -{ - setReaderDefaultSource(":t=0-76:s=0"); - setReaderDefaultOutput("zilogmcz.img"); - setReaderRevolutions(2); - flags.parseFlags(argc, argv); - - ZilogMczDecoder decoder; - readDiskCommand(decoder); - return 0; -} - diff --git a/src/readables/zilogmcz.textpb b/src/readables/zilogmcz.textpb new file mode 100644 index 00000000..8efe97bd --- /dev/null +++ b/src/readables/zilogmcz.textpb @@ -0,0 +1,27 @@ +input { + disk { + drive {} + } +} + +output { + file { + filename: "zilogmcz.img" + img {} + } +} + +decoder { + zilogmcz {} +} + +cylinders { + start: 0 + end: 76 +} + +heads { + start: 0 + end: 0 +} +