WonderWitch .fx files

From WSdev Wiki
Revision as of 06:15, 9 September 2023 by Asie (talk | contribs) (fix formatting)
Jump to navigationJump to search

FreyaOS uses XMODEM transfers to send and receive files through the serial port. These transfers do not include any file metadata by default - such as the file's name, size, permissions or creation date. As such, .fx files are used - binary files with a special 128-byte header[1].

Format

Header contents
Offset Length Contents
$00 4 Magic string: #!ws
$04 60 Padding; typically 0xFF.
$40 16 File name; zero-terminated Shift-JIS string.
$50 24 User-friendly file name; zero-terminated Shift-JIS string.

FreyaOS displays the first 12 characters in its file selector.

$68 4 ?
$6C 4 Total file size, in bytes, excluding the header.
$70 2 XMODEM chunk count - above file size divided by 128, then rounded up.
$72 2 File mode
$74 4 Modification time - seconds since January 1st, 2000.
$78 4 ?
$7C 4 Offset to resource data, bytes excluding header; -1 if not present.

File mode



15  bit  8  7  bit  0
 ---- ----  ---- ----
 ???? ????  ??i? ?rwx
              |   |||
              |   ||+- Execute
              |   |+-- Write
              |   +--- Read
              +------- Intermediate library
  1. XMODEM transfers are performed in 128-byte blocks; this allows fetching the file's metadata as the first block