Strukturę FSa Draco zna tylko on sam, natomiast wiadomo że jest to najprawdopodobniej rozwinięcie FSa używanego przez SpartaDOS.
A rp3fs w obecnej fazie projektu wygląda tak:
R0l0Player 3 File System Specification
1. general info
(all numbers decimal)
structure:
- reserved area (16 sectors)
- vtoc
- data
cluster size: 256 sectors (128kB)
max. file size: 32768 clusters (4194304kB)
max. part. size: 1048576 clusters (128GB)
2. formatting partition - calculating values:
(all numbers decimal)
x - total sectors (x>=2066)
n - total clusters
v - first sector of data
z - first sector after data
n=int((x-17)/256.001954)
v=int((n+511)/512)+16
z=v+256*n
vtoc starts at sector #16
3. boot record (sector #0)
(all numbers hexadecimal)
offset len content
-------------------------------------------------------
000 001 file system ID ('R'*)
001 003 reserved (00)
004 001 file system version (10)
005 001 reserved (00)
006 008 file system name ('RPlay3FS')
00E 001 volume status
b7: U unclosed filesystem
b6: B bad sector(s) detected
b5-0: reserved (00)
00F 001 extended status
b7: L volume uses lba mode
010 003 volume format date (m,d,y)
013 003 volume format time (h,m,s)
016 002 serial number
018 002 sequential number
01A 002 number of cylinders
01C 001 number of heads
01D 001 number of sectors per track
01E 002 reserved (00)
020 020 volume label (ASCII, padded with spaces)
040 004 volume size in sectors
044 004 total number of clusters
048 004 number of free clusters
04C 004 number of first free cluster
050 004 first vtoc sector # (lba absolute)
054 004 first data sector # (lba absolute)
058 008 reserved (00)
root directory parameters:
060 004 physical address of map cluster
064 004 map cluster #
068 004 # of clusters
06C 002 # of sectors in last cluster
06E 192 reserved (00)
4. vtoc (cluster usage map) - byte oriented
(all numbers hexadecimal)
00: empty (unused)
40: not existing
80: used
c0: bad
5. sector map of file/directory
(all numbers hexadecimal)
4-byte records contains physical addresses of file clusters on disk,
table padded with 0s. If status bit L is set, they are stored in LBA format,
otherwise - each record is as follows:
000 001 sector number (byte for D113)
001 002 cylinder number (word for D114)
003 001 head/disk (byte for D116)
6. directory format
(all numbers hexadecimal)
each entry occupies one $200-byte sector and consists of following fields:
000 100 file name (currently ATASCII, planned: UTF-8), padded with 0s
100 008 8.3 file name
108 003 8.3 file extension
10B 001 file attributes:
b7: D - directory
b6: R - read only
b5: E - erased
b3-0: reserved (0)
10C 004 reserved (0)
110 003 last modification date (m, d, y)
113 003 last modification time (h, m, s)
116 01A reserved (0)
130 004 physical address of map cluster
134 004 map cluster #
138 004 # of clusters
13C 002 # of sectors in last cluster
13E 0C2 reserved (0)
Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.