WonderWitch/Filesystem

From WSdev Wiki
Jump to navigationJump to search

Mount points

FreyaOS mount points
Path File data location File table location File table size (entries) Description
/rom0 ROM (384 KB) SRAM bank 3, $16F2 128
/ram0 SRAM bank 0 (64 KB) SRAM bank 3, $06F2 64
/ SRAM bank 3, $02F2 16

/kern

The /kern folder is provided by FreyaOS.

File Description
@ilib IlibIL; can be overridden in /rom0
@proc ProcIL; can be overridden in /rom0
@pfs FsIL
@shell Shell program; can be overridden in /rom0
@aux
about.txt "About Freya"

File table entry format

Header contents
Offset Length Contents
0 16 File name; zero-terminated Shift-JIS string.
16 24 User-friendly file name; zero-terminated Shift-JIS string.

FreyaOS displays the first 12 characters in its file selector.

40 4 File: Location in CPU address space (segment:offset)
44 4 File: Total file size, in bytes, excluding the header.
48 2 File: 128-byte (XMODEM) chunk count, rounded up.

Directory: Number of total available entries. 0xFFFF (-1): Unallocated entry.

50 2 File mode
52 4 Modification time
56 4 File: TODO

Directory: Pointer to FsIL implementation for directory

60 4 Offset to resource data, bytes excluding header; 0xFFFFFFFF if not present.

Timestamp format

Header contents
Bits Contents
31 - 25 Year, 0 .. (starting from 2000)
24 - 21 Month, 1 .. 12
20 - 16 Day, 1 .. 31
15 - 11 Hour, 0 .. 23
10 - 5 Minute, 0 .. 59
0 - 4 Second, 0 .. 29 (in two-second units)

File modes


15  bit  8  7  bit  0
 ---- ----  ---- ----
 ???? ????  dlis mrwx
            |||| ||||
            |||| |||+- Execute
            |||| ||+-- Write
            |||| |+--- Read
            |||| +---- Prohibit mmap() use
            |||+------ StreamIL-related?
            ||+------- Intermediate library
            |+-------- Symbolic link
            +--------- Directory