-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFormat.h
More file actions
72 lines (54 loc) · 1.47 KB
/
Format.h
File metadata and controls
72 lines (54 loc) · 1.47 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
///////////////////////////////////////////////////////////
//
// SuperDiskIndex
//
////////////////////
//
//
//
#pragma once
#include "Buffer.h"
class Format
{
public:
Format();
virtual ~Format();
void InitLayout();
void SetVirtualDisk(class VirtualDisk *disk) { Disk=disk; }
virtual char const *GetName()=0;
// called from BitStream/DiskLayout
virtual u8 GetSyncWordCount()=0;
virtual u32 GetSyncWord(int n)=0;
virtual u32 GetSyncBlockLen(int n)=0;
virtual bool UsesGCR()=0;
virtual u16 GetMaxExpectedCylinder()=0;
virtual u16 GetMaxExpectedHead()=0;
virtual u16 GetMaxExpectedSector()=0;
virtual bool UsesVariableTrackLen()=0;
//virtual bool Detect();
virtual void PreTrackInit()=0;
virtual void HandleBlock(Buffer *buffer, int currev)=0;
virtual bool Analyze()=0;
//u8 GetCyls() { return LastCyl+1; }
//u8 GetHeads() { return LastHead+1; }
//u8 GetSects() { return LastSect+1; }
u16 GetSectSize() { return SectSize; }
class DiskLayout *GetLayout() { return DLayout; }
void SetDiskType(u32 type) { DiskType=type; }
void SetDiskSubType(u32 subtype) { DiskSubType=subtype; }
u32 GetDiskType() { return DiskType; }
u32 GetDiskSubType() { return DiskSubType; }
virtual char const *GetDiskTypeString()=0;
virtual char const *GetDiskSubTypeString()=0;
protected:
class VirtualDisk *Disk;
//u8 LastCyl;
//u8 LastHead;
//u8 LastSect;
u16 SectSize;
u32 DiskType;
u32 DiskSubType;
class DiskLayout *DLayout;
class JsonState *JS;
};
typedef Format *pFormat;