Add a special reader program for Acorn disks as I keep getting the parameters

wrong.
This commit is contained in:
David Given
2019-02-09 23:20:58 +01:00
parent 65315f4603
commit b6f99d4429
3 changed files with 36 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ Tested ones are:
- ADFS L: 80 track, 16 sector, 2 sides, 256 bytes per sector == 640kB.
- ADFE D/E: 80 track, 5 sector, 2 sides, 1024 bytes per sector == 800kB.
- ADFS F: 80 track, 10 sector, 2 sides, 1024 bytes per sector == 1600kB.
I expect the others to work, but haven't tried them; [get in
touch](https://github.com/davidgiven/fluxengine/issues/new) if you have any
@@ -28,8 +29,8 @@ Reading discs
Just do:
```
.obj/fe-readibm --sector-id-base=0
.obj/fe-readacorn
```
You should end up with an `ibm.img` of the appropriate size for your disk
You should end up with an `acorn.img` of the appropriate size for your disk
format.

View File

@@ -84,6 +84,7 @@ brotherinc = include_directories('lib/brother')
executable('fe-erase', ['src/fe-erase.cc'], include_directories: [feinc], link_with: [felib, writerlib])
executable('fe-inspect', ['src/fe-inspect.cc'], include_directories: [feinc, fmtinc, decoderinc], link_with: [felib, readerlib, decoderlib, fmtlib])
executable('fe-readacorn', ['src/fe-readacorn.cc'], include_directories: [feinc, fmtinc, decoderinc], link_with: [felib, readerlib, decoderlib, fmtlib])
executable('fe-readbrother', ['src/fe-readbrother.cc'], include_directories: [feinc, fmtinc, decoderinc, brotherinc], link_with: [felib, readerlib, decoderlib, brotherdecoderlib, fmtlib])
executable('fe-readibm', ['src/fe-readibm.cc'], include_directories: [feinc, fmtinc, decoderinc], link_with: [felib, readerlib, decoderlib, fmtlib])
executable('fe-rpm', ['src/fe-rpm.cc'], include_directories: [feinc], link_with: [felib])

32
src/fe-readacorn.cc Normal file
View File

@@ -0,0 +1,32 @@
#include "globals.h"
#include "flags.h"
#include "reader.h"
#include "fluxmap.h"
#include "decoders.h"
#include "image.h"
#include "sector.h"
#include "sectorset.h"
#include "record.h"
#include <fmt/format.h>
static StringFlag outputFilename(
{ "--output", "-o" },
"The output image file to write to.",
"acorn.img");
static IntFlag sectorIdBase(
{ "--sector-id-base" },
"Sector ID of the first sector.",
0);
int main(int argc, const char* argv[])
{
setReaderDefaultSource(":t=0-79:s=0-1");
Flag::parseFlags(argc, argv);
MfmBitmapDecoder bitmapDecoder;
IbmRecordParser recordParser(sectorIdBase);
readDiskCommand(bitmapDecoder, recordParser, outputFilename);
return 0;
}