Sustainability of Digital Formats: Planning for Library of Congress Collections |
|
Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact |
Full name | HFE (HxC Floppy Emulator) File Format |
---|---|
Description |
The HFE (HxC Floppy Emulator) File Format is designed for use with the SD HxC Floppy Emulator hardware, which is based on the PIC18F family of microcontrollers. This format serves as an optimized floppy image format, encompassing both the floppy disk image and crucial metadata. The metadata, stored in the file's header (the initial 512 bytes), includes information such as the number of tracks, the valid "side" of the disk, track encoding method, bitrate, rotations per minute, floppy interface mode, floppy write protection mode, and other encoding flags. The HFE file format comprises three essential components: the header, the track offset Look-Up Table (LUT), and the track data. The file header spans 512 bytes, the track offset LUT can be up to 1024 bytes, and the track data has an open size. The header encapsulates vital details about the file, defining its structure and encoding. As stated in the specification, a track data is essentially a table containing the bitstream of a track from the floppy disk. This track data can employ various encoding methods, including Modified Frequency Modulation (MFM), Frequency Modulation (FM), Group Coded Recording (GCR), or custom encoding. Each track is divided into blocks of 512 bytes, with each block containing a portion of both Side 0 and Side 1 tracks, and these blocks alternate in the track data. |
Production phase | Middle-state. End-state, as it is also used for archival purposes. |
LC experience or existing holdings | The Library of Congress includes HFE files in its collections, especially in the Manuscripts and Music Divisions as well as other personal papers repositories. |
---|---|
LC preference | The Library of Congress has not yet expressed any format preference for forensic or disk image files. |
Disclosure |
Documentation about the format structure and its variants is available on HFE HxC Floppy Emulator file format specifications with a high level description of changes between the versions. Comments welcome. |
---|---|
Documentation |
SDCard HxC Floppy Emulator HFE File format, Rev.1.1. 06/20/2012 and HFE HxC Floppy Emulator file format, Rev.3.1 - 05/22/2019 (which also covers the high level changes between earlier versions). See more details at HFE HxC Floppy Emulator file format specifications. Source code for multiple versions are available on Jean-François Del Nero's HxCFloppyEmulator GitHub repo. Comments welcome. |
Adoption |
HxC software boasts "tens of thousands" of installations according to its official website. While specific statistics on the file format are not provided, it is known that this file format is utilized by various applications beyond the HxC Floppy Emulator Project. Notably, the file format is employed by GoTek, a floppy emulator hardware, as well as FlashFloppy, which serves as floppy emulator software specifically designed for GoTek. Additionally, it finds application in Clock Signal (CLK), an emulator catering to 8-bit and 16-bit computers; beebjit, an emulator tailored for the BBC 8-bit microcomputer; and B-em, as indicated by a pull request highlighting the addition of HFE support. This establishes the widespread and diverse usage of the file format across different emulation platforms and hardware. |
Licensing and patents | Open-source with no related patents. Comments welcome. |
Transparency | Limited transparency. HFE is dependent upon floppy emulator hardware and requires algorithms and tools to read. |
Self-documentation |
The HFE file format comprises three essential components: the header, the track offset Look-Up Table (LUT), and the track data. The file header spans 512 bytes, the track offset LUT can be up to 1024 bytes, and the track data has an open size. The header encapsulates vital details about the file, defining its structure and encoding. As stated in the specification, a track data is essentially a table containing the bitstream of a track from the floppy disk. This track data can employ various encoding methods, including Modified Frequency Modulation (MFM), Frequency Modulation (FM), Group Coded Recording (GCR), or custom encoding. Each track is divided into blocks of 512 bytes, with each block containing a portion of both Side 0 and Side 1 tracks, and these blocks alternate in the track data. HFE self-identifies with Magic Numbers. |
External dependencies | Is read by floppy disk emulator software. |
Technical protection considerations | No encryption. |
Tag | Value | Note |
---|---|---|
Filename extension | hfe |
See: specification and source code. |
Magic numbers | ASCII: HXCPICFE Hex: 4858435049434645 |
See: specification. This is the official magic numbers string for Version 1.1 (potentially Version 1.0). Comments welcome. |
Magic numbers | ASCII: HXCHFEV3 Hex: 4858434846455633 |
From Wikidata (v3): https://www.wikidata.org/wiki/Q105857317 |
Pronom PUID | See note. | PRONOM has no corresponding entry as of January 2023. |
Wikidata Title ID | Q105857177 |
HxC Floppy Emulator stream image: https://www.wikidata.org/wiki/Q105857177 |
Wikidata Title ID | Q105857311 |
HxC Floppy Emulator disk image: https://www.wikidata.org/wiki/Q105857311 |
Wikidata Title ID | Q105857317 |
HxC Floppy Emulator disk image (v3): https://www.wikidata.org/wiki/Q105857317 |
General | |
---|---|
History |
HFE was developed by Jean-Francois Del Nero in 2006 to load legacy video games from Atari ST and Amiga machines, which required floppy disks. The project grew organically from user requests and now supports “hundreds of machines and floppy formats”. Del-Nero’s purpose in HFE’s development was to “completely replace the floppy disk drive by an electronic device”. The hardware is available as an SD Card, a USB drive, and what it describes as "advanced firmware." The official website also includes firmware schematics and emulator software. HFE has several versions:
|
|