Skip to content

Commit 414aad0

Browse files
committed
cleanup
1 parent fb8dbff commit 414aad0

File tree

5 files changed

+54
-75
lines changed

5 files changed

+54
-75
lines changed

Core/Peripherals/Drive/Encoders/AmigaEncoder.cpp

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,12 @@
1313
#include "MFM.h"
1414
#include "utl/support/Bits.h"
1515

16-
/*
17-
namespace vamiga {
16+
namespace vamiga {
1817

19-
void
20-
AmigaEncoder::encodeTrack(MutableByteView track, TrackNr t, ByteView src) {
21-
::vamiga::AmigaEncoder::encodeTrack(track, t, src);
22-
}
23-
void
24-
AmigaEncoder::decodeTrack(ByteView track, TrackNr t, MutableByteView dst) {
25-
::vamiga::AmigaEncoder::decodeTrack(track, t, dst);
26-
}
27-
28-
}
29-
*/
30-
31-
namespace vamiga::AmigaEncoder {
18+
namespace Encoder { AmigaEncoder amiga; }
3219

3320
void
34-
encodeTrack(MutableByteView track, TrackNr t, ByteView src)
21+
AmigaEncoder::encodeTrack(MutableByteView track, TrackNr t, ByteView src)
3522
{
3623
const isize bsize = 512; // Block size in bytes
3724
const isize ssize = 1088; // MFM sector size in bytes
@@ -52,7 +39,7 @@ encodeTrack(MutableByteView track, TrackNr t, ByteView src)
5239
}
5340

5441
void
55-
encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView data)
42+
AmigaEncoder::encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView data)
5643
{
5744
const isize bsize = 512; // Block size in bytes
5845
const isize ssize = 1088; // MFM sector size in bytes
@@ -123,7 +110,7 @@ encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteVie
123110
}
124111

125112
void
126-
decodeTrack(ByteView track, TrackNr t, MutableByteView dst)
113+
AmigaEncoder::decodeTrack(ByteView track, TrackNr t, MutableByteView dst)
127114
{
128115
const isize bsize = 512; // Block size in bytes
129116
const isize count = (isize)dst.size() / bsize; // Number of sectors to decode
@@ -146,7 +133,7 @@ decodeTrack(ByteView track, TrackNr t, MutableByteView dst)
146133
}
147134

148135
void
149-
decodeSector(ByteView track, isize offset, MutableByteView dst)
136+
AmigaEncoder::decodeSector(ByteView track, isize offset, MutableByteView dst)
150137
{
151138
const isize bsize = 512;
152139
assert(dst.size() == bsize);
@@ -164,7 +151,7 @@ decodeSector(ByteView track, isize offset, MutableByteView dst)
164151
}
165152

166153
optional<isize>
167-
trySeekSector(ByteView track, SectorNr s, isize offset)
154+
AmigaEncoder::trySeekSector(ByteView track, SectorNr s, isize offset)
168155
{
169156
constexpr isize syncMarkLen = 4;
170157

@@ -193,7 +180,7 @@ trySeekSector(ByteView track, SectorNr s, isize offset)
193180
}
194181

195182
isize
196-
seekSector(ByteView track, SectorNr s, isize offset)
183+
AmigaEncoder::seekSector(ByteView track, SectorNr s, isize offset)
197184
{
198185
if (auto result = trySeekSector(track, s, offset))
199186
return *result;
@@ -202,7 +189,7 @@ seekSector(ByteView track, SectorNr s, isize offset)
202189
}
203190

204191
std::unordered_map<isize, isize>
205-
seekSectors(ByteView track)
192+
AmigaEncoder::seekSectors(ByteView track)
206193
{
207194
constexpr isize syncMarkLen = 4;
208195
std::unordered_map<isize, isize> result;

Core/Peripherals/Drive/Encoders/AmigaEncoder.h

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,23 @@
1313

1414
namespace vamiga {
1515

16-
namespace AmigaEncoder {
17-
18-
void encodeTrack(MutableByteView track, TrackNr t, ByteView src);
19-
void encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView src);
16+
class AmigaEncoder : public DiskEncoder {
2017

21-
void decodeTrack(ByteView track, TrackNr t, MutableByteView dst);
22-
void decodeSector(ByteView track, isize offset, MutableByteView dst);
18+
public:
2319

24-
optional<isize> trySeekSector(ByteView track, SectorNr s, isize offset = 0);
25-
isize seekSector(ByteView track, SectorNr s, isize offset = 0);
20+
void encodeTrack(MutableByteView track, TrackNr t, ByteView src);
21+
void encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView src);
2622

27-
// Computes a map from sector numbers to byte offsets
28-
std::unordered_map<isize, isize> seekSectors(ByteView track);
23+
void decodeTrack(ByteView track, TrackNr t, MutableByteView dst);
24+
void decodeSector(ByteView track, isize offset, MutableByteView dst);
2925

30-
}
26+
optional<isize> trySeekSector(ByteView track, SectorNr s, isize offset = 0);
27+
isize seekSector(ByteView track, SectorNr s, isize offset = 0);
3128

32-
/*
33-
class AmigaEncoder : public DiskEncoder {
34-
35-
~AmigaEncoder() = default;
36-
37-
void encodeTrack(MutableByteView track, TrackNr t, ByteView src) override {
38-
::vamiga::AmigaEncoder::encodeTrack(track, t, src);
39-
}
40-
void decodeTrack(ByteView track, TrackNr t, MutableByteView dst) override {
41-
::vamiga::AmigaEncoder::decodeTrack(track, t, dst);
42-
}
29+
// Computes a map from sector numbers to byte offsets
30+
std::unordered_map<isize, isize> seekSectors(ByteView track);
4331
};
44-
*/
32+
33+
namespace Encoder { extern AmigaEncoder amiga; }
4534

4635
}

Core/Peripherals/Drive/Encoders/IBMEncoder.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@
1313
#include "MFM.h"
1414
#include "utl/support/Bits.h"
1515

16-
namespace vamiga::IBMEncoder {
16+
namespace vamiga {
17+
18+
namespace Encoder { IBMEncoder ibm; }
1719

1820
void
19-
encodeTrack(MutableByteView track, TrackNr t, ByteView src)
21+
IBMEncoder::encodeTrack(MutableByteView track, TrackNr t, ByteView src)
2022
{
2123
const isize bsize = 512; // Block size in bytes
2224
const isize ssize = 1300; // MFM sector size in bytes
@@ -50,7 +52,7 @@ encodeTrack(MutableByteView track, TrackNr t, ByteView src)
5052
}
5153

5254
void
53-
encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView data)
55+
IBMEncoder::encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView data)
5456
{
5557
const isize bsize = 512; // Block size in bytes
5658

@@ -121,7 +123,7 @@ encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteVie
121123
}
122124

123125
void
124-
decodeTrack(ByteView track, TrackNr t, MutableByteView dst)
126+
IBMEncoder::decodeTrack(ByteView track, TrackNr t, MutableByteView dst)
125127
{
126128
const isize bsize = 512; // Block size in bytes
127129
const isize count = (isize)dst.size() / bsize; // Number of sectors to decode
@@ -145,7 +147,7 @@ decodeTrack(ByteView track, TrackNr t, MutableByteView dst)
145147
}
146148

147149
void
148-
decodeSector(ByteView track, isize offset, MutableByteView dst)
150+
IBMEncoder::decodeSector(ByteView track, isize offset, MutableByteView dst)
149151
{
150152
const isize bsize = 512;
151153
assert(dst.size() == bsize);
@@ -182,7 +184,7 @@ decodeSector(ByteView track, isize offset, MutableByteView dst)
182184
}
183185

184186
optional<isize>
185-
trySeekSector(ByteView track, SectorNr s, isize offset)
187+
IBMEncoder::trySeekSector(ByteView track, SectorNr s, isize offset)
186188
{
187189
constexpr isize syncMarkLen = 8;
188190

@@ -210,7 +212,7 @@ trySeekSector(ByteView track, SectorNr s, isize offset)
210212
}
211213

212214
isize
213-
seekSector(ByteView track, SectorNr s, isize offset)
215+
IBMEncoder::seekSector(ByteView track, SectorNr s, isize offset)
214216
{
215217
if (auto result = trySeekSector(track, s, offset))
216218
return *result;
@@ -220,7 +222,7 @@ seekSector(ByteView track, SectorNr s, isize offset)
220222
}
221223

222224
std::unordered_map<isize, isize>
223-
seekSectors(ByteView track)
225+
IBMEncoder::seekSectors(ByteView track)
224226
{
225227
constexpr isize numSectors = 9;
226228
constexpr isize syncMarkLen = 8;

Core/Peripherals/Drive/Encoders/IBMEncoder.h

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,25 @@
1111

1212
#include "DiskEncoder.h"
1313

14-
namespace vamiga::IBMEncoder {
14+
namespace vamiga {
1515

16-
void encodeTrack(MutableByteView track, TrackNr t, ByteView src);
17-
void encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView src);
16+
class IBMEncoder : public DiskEncoder {
1817

19-
void decodeTrack(ByteView track, TrackNr t, MutableByteView dst);
20-
void decodeSector(ByteView track, isize offset, MutableByteView dst);
18+
public:
2119

22-
optional<isize> trySeekSector(ByteView track, SectorNr s, isize offset = 0);
23-
isize seekSector(ByteView track, SectorNr s, isize offset = 0);
20+
void encodeTrack(MutableByteView track, TrackNr t, ByteView src) override;
21+
void encodeSector(MutableByteView track, isize offset, TrackNr t, SectorNr s, ByteView src);
2422

25-
// Computes a map from sector numbers to byte offsets
26-
std::unordered_map<isize, isize> seekSectors(ByteView track);
23+
void decodeTrack(ByteView track, TrackNr t, MutableByteView dst) override;
24+
void decodeSector(ByteView track, isize offset, MutableByteView dst);
2725

28-
/*
29-
class IBMEncoder : public DiskEncoder {
26+
optional<isize> trySeekSector(ByteView track, SectorNr s, isize offset = 0);
27+
isize seekSector(ByteView track, SectorNr s, isize offset = 0);
3028

29+
// Computes a map from sector numbers to byte offsets
30+
std::unordered_map<isize, isize> seekSectors(ByteView track);
3131
};
32-
*/
32+
33+
namespace Encoder { extern IBMEncoder ibm; }
3334

3435
}

Core/Peripherals/Drive/FloppyDisk.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,13 @@ FloppyDisk::readBlock(u8 *dst, isize nr) const
112112

113113
auto [t,s] = ts(nr);
114114
auto tdata = track[t].byteView();
115-
auto offset = AmigaEncoder::trySeekSector(tdata, s);
115+
auto offset = Encoder::amiga.trySeekSector(tdata, s);
116116

117117
if (!offset)
118118
throw IOError(DeviceError::DEV_SEEK_ERR, "Block " + std::to_string(nr));
119119

120120
debug(MFM_DEBUG, "Found (%ld,%ld) at offset %ld\n", t, s, *offset);
121-
AmigaEncoder::decodeSector(tdata, *offset, std::span<u8>(dst, 512));
121+
Encoder::amiga.decodeSector(tdata, *offset, std::span<u8>(dst, 512));
122122
}
123123

124124
void
@@ -128,13 +128,13 @@ FloppyDisk::writeBlock(const u8 *src, isize nr)
128128

129129
auto [t,s] = ts(nr);
130130
auto tdata = track[t].byteView();
131-
auto offset = AmigaEncoder::trySeekSector(tdata, s);
131+
auto offset = Encoder::amiga.trySeekSector(tdata, s);
132132

133133
if (!offset)
134134
throw IOError(DeviceError::DEV_SEEK_ERR, "Block " + std::to_string(nr));
135135

136136
debug(MFM_DEBUG, "Found (%ld,%ld) at offset %ld\n", t, s, *offset);
137-
AmigaEncoder::encodeSector(tdata, *offset, t, s, std::span<const u8>(src, 512));
137+
Encoder::amiga.encodeSector(tdata, *offset, t, s, std::span<const u8>(src, 512));
138138
}
139139

140140
void
@@ -348,7 +348,7 @@ FloppyDisk::encode(const ADFFile &adf)
348348

349349
// Encode all tracks
350350
for (TrackNr t = 0; t < tracks; ++t)
351-
AmigaEncoder::encodeTrack(byteView(t), t, adf.byteView(t));
351+
Encoder::amiga.encodeTrack(byteView(t), t, adf.byteView(t));
352352

353353
// In debug mode, also run the decoder
354354
if (ADF_DEBUG) {
@@ -374,7 +374,7 @@ FloppyDisk::decode(ADFFile &adf) const
374374

375375
// Decode all tracks
376376
for (TrackNr t = 0; t < tracks; ++t)
377-
AmigaEncoder::decodeTrack(byteView(t), t, adf.byteView(t));
377+
Encoder::amiga.decodeTrack(byteView(t), t, adf.byteView(t));
378378
}
379379

380380
void
@@ -395,7 +395,7 @@ FloppyDisk::encode(const class IMGFile &img)
395395

396396
// Encode all tracks
397397
for (TrackNr t = 0; t < tracks; ++t)
398-
IBMEncoder::encodeTrack(byteView(t), t, img.byteView(t));
398+
Encoder::ibm.encodeTrack(byteView(t), t, img.byteView(t));
399399

400400
// In debug mode, also run the decoder
401401
if (IMG_DEBUG) {
@@ -421,7 +421,7 @@ FloppyDisk::decode(class IMGFile &img) const
421421

422422
// Decode all tracks
423423
for (TrackNr t = 0; t < tracks; ++t)
424-
IBMEncoder::decodeTrack(byteView(t), t, img.byteView(t));
424+
Encoder::ibm.decodeTrack(byteView(t), t, img.byteView(t));
425425
}
426426

427427
void
@@ -442,7 +442,7 @@ FloppyDisk::encode(const class STFile &img)
442442

443443
// Encode all tracks
444444
for (TrackNr t = 0; t < tracks; ++t)
445-
IBMEncoder::encodeTrack(byteView(t), t, img.byteView(t));
445+
Encoder::ibm.encodeTrack(byteView(t), t, img.byteView(t));
446446

447447
// In debug mode, also run the decoder
448448
if (IMG_DEBUG) {
@@ -468,7 +468,7 @@ FloppyDisk::decode(class STFile &img) const
468468

469469
// Decode all tracks
470470
for (TrackNr t = 0; t < tracks; ++t)
471-
IBMEncoder::decodeTrack(byteView(t), t, img.byteView(t));
471+
Encoder::ibm.decodeTrack(byteView(t), t, img.byteView(t));
472472
}
473473

474474
void

0 commit comments

Comments
 (0)