-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFormatDiskAmiga.h
More file actions
54 lines (43 loc) · 1.19 KB
/
FormatDiskAmiga.h
File metadata and controls
54 lines (43 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
///////////////////////////////////////////////////////////
//
// SuperDiskIndex
//
////////////////////
//
//
//
#pragma once
#include "Format.h"
#include "Buffer.h"
///////////////////////////////////////////////////////////
class FormatDiskAmiga : public Format
{
public:
FormatDiskAmiga();
virtual ~FormatDiskAmiga() {}
virtual char const *GetName();
// called from BitStream
virtual u8 GetSyncWordCount();
virtual u32 GetSyncWord(int n);
virtual u32 GetSyncBlockLen(int n);
virtual bool UsesGCR() { return false; }
virtual u16 GetMaxExpectedCylinder() { return 81; }
virtual u16 GetMaxExpectedHead() { return 1; }
virtual u16 GetMaxExpectedSector() { return 24; }
virtual bool UsesVariableTrackLen() { return false; }
//virtual bool Detect();
virtual void PreTrackInit();
virtual void HandleBlock(Buffer *buffer, int currev);
bool Analyze();
u16 Spread8(u8 data);
u32 Spread16(u16 data);
u64 Spread32(u32 data);
u32 Weave16(u8 odd, u8 even);
u32 Weave32(u16 odd, u16 even);
virtual char const *GetDiskTypeString();
virtual char const *GetDiskSubTypeString();
protected:
void ParseDirectory(int fd, u32 block, char const *prefix);
void ScanFile(u32 block);
class DiskMap *DMap;
};