mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Convert the Micropolis decoder.
This commit is contained in:
@@ -5,10 +5,12 @@
|
||||
|
||||
class Sector;
|
||||
class Fluxmap;
|
||||
class MicropolisInputProto;
|
||||
|
||||
class MicropolisDecoder : public AbstractDecoder
|
||||
{
|
||||
public:
|
||||
MicropolisDecoder(const MicropolisInputProto&) {}
|
||||
virtual ~MicropolisDecoder() {}
|
||||
|
||||
RecordType advanceToNextRecord();
|
||||
|
||||
4
arch/micropolis/micropolis.proto
Normal file
4
arch/micropolis/micropolis.proto
Normal file
@@ -0,0 +1,4 @@
|
||||
syntax = "proto2";
|
||||
|
||||
message MicropolisInputProto {}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "arch/f85/f85.h"
|
||||
#include "arch/ibm/ibm.h"
|
||||
#include "arch/macintosh/macintosh.h"
|
||||
#include "arch/micropolis/micropolis.h"
|
||||
#include "decoders/fluxmapreader.h"
|
||||
#include "record.h"
|
||||
#include "protocol.h"
|
||||
@@ -49,6 +50,9 @@ std::unique_ptr<AbstractDecoder> AbstractDecoder::create(const DecoderProto& con
|
||||
case DecoderProto::kMacintosh:
|
||||
return std::unique_ptr<AbstractDecoder>(new MacintoshDecoder(config.macintosh()));
|
||||
|
||||
case DecoderProto::kMicropolis:
|
||||
return std::unique_ptr<AbstractDecoder>(new MicropolisDecoder(config.micropolis()));
|
||||
|
||||
default:
|
||||
Error() << "no input disk format specified";
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import "arch/f85/f85.proto";
|
||||
import "arch/fb100/fb100.proto";
|
||||
import "arch/ibm/ibm.proto";
|
||||
import "arch/macintosh/macintosh.proto";
|
||||
import "arch/micropolis/micropolis.proto";
|
||||
import "lib/common.proto";
|
||||
|
||||
message DecoderProto {
|
||||
@@ -31,6 +32,7 @@ message DecoderProto {
|
||||
Fb100InputProto fb100 = 11;
|
||||
MacintoshInputProto macintosh = 12;
|
||||
Apple2InputProto apple2 = 13;
|
||||
MicropolisInputProto micropolis = 14;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -266,6 +266,7 @@ buildproto libproto.a \
|
||||
arch/fb100/fb100.proto \
|
||||
arch/ibm/ibm.proto \
|
||||
arch/macintosh/macintosh.proto \
|
||||
arch/micropolis/micropolis.proto \
|
||||
lib/common.proto \
|
||||
lib/config.proto \
|
||||
lib/decoders/decoders.proto \
|
||||
@@ -357,6 +358,7 @@ READABLES="\
|
||||
fb100 \
|
||||
ibm \
|
||||
macintosh \
|
||||
micropolis \
|
||||
"
|
||||
|
||||
WRITABLES="\
|
||||
@@ -407,8 +409,6 @@ buildlibrary libfrontend.a \
|
||||
src/fe-writeflux.cc \
|
||||
src/fluxengine.cc \
|
||||
|
||||
# src/fe-readapple2.cc \
|
||||
# src/fe-readmicropolis.cc \
|
||||
# src/fe-readmx.cc \
|
||||
# src/fe-readtids990.cc \
|
||||
# src/fe-readvictor9k.cc \
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
#include "globals.h"
|
||||
#include "flags.h"
|
||||
#include "reader.h"
|
||||
#include "fluxmap.h"
|
||||
#include "encoders/encoders.h"
|
||||
#include "decoders/decoders.h"
|
||||
#include "sector.h"
|
||||
#include "sectorset.h"
|
||||
#include "record.h"
|
||||
#include "micropolis/micropolis.h"
|
||||
#include "fmt/format.h"
|
||||
|
||||
static FlagGroup flags { &readerFlags };
|
||||
|
||||
int mainReadMicropolis(int argc, const char* argv[])
|
||||
{
|
||||
setReaderDefaultSource(":t=0-76");
|
||||
setReaderDefaultOutput("micropolis.img");
|
||||
setReaderHardSectorCount(16);
|
||||
flags.parseFlags(argc, argv);
|
||||
|
||||
MicropolisDecoder decoder;
|
||||
readDiskCommand(decoder);
|
||||
return 0;
|
||||
}
|
||||
|
||||
29
src/readables/micropolis.textpb
Normal file
29
src/readables/micropolis.textpb
Normal file
@@ -0,0 +1,29 @@
|
||||
input {
|
||||
disk {
|
||||
drive {
|
||||
hard_sector_count: 16
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
output {
|
||||
file {
|
||||
filename: "micropolis.img"
|
||||
img {}
|
||||
}
|
||||
}
|
||||
|
||||
decoder {
|
||||
micropolis {}
|
||||
}
|
||||
|
||||
cylinders {
|
||||
start: 0
|
||||
end: 76
|
||||
}
|
||||
|
||||
heads {
|
||||
start: 0
|
||||
end: 1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user