Convert the ZilogMcz decoder.

This commit is contained in:
David Given
2021-05-15 17:40:20 +02:00
parent 2512a4fc32
commit f741ad058e
8 changed files with 43 additions and 29 deletions

View File

@@ -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)

View File

@@ -3,10 +3,12 @@
class Sector;
class Fluxmap;
class ZilogMczInputProto;
class ZilogMczDecoder : public AbstractDecoder
{
public:
ZilogMczDecoder(const ZilogMczInputProto&) {}
virtual ~ZilogMczDecoder() {}
RecordType advanceToNextRecord();

View File

@@ -0,0 +1,4 @@
syntax = "proto2";
message ZilogMczInputProto {}

View File

@@ -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> AbstractDecoder::create(const DecoderProto& con
case DecoderProto::kVictor9K:
return std::unique_ptr<AbstractDecoder>(new Victor9kDecoder(config.victor9k()));
case DecoderProto::kZilogmcz:
return std::unique_ptr<AbstractDecoder>(new ZilogMczDecoder(config.zilogmcz()));
default:
Error() << "no input disk format specified";
}

View File

@@ -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;
}
}

View File

@@ -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 \

View File

@@ -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;
}

View File

@@ -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
}