Difference between revisions of "File format"
m (added Linux) |
Byteobserver (talk | contribs) m (→Linux: add details of Linux ELF file format) |
||
(One intermediate revision by one other user not shown) | |||
Line 36: | Line 36: | ||
File extension: .exe | File extension: .exe | ||
− | === | + | ===ELF=== |
System: Linux | System: Linux | ||
− | Header: | + | Header: 45 - 100+ |
Native size unit: Bytes | Native size unit: Bytes | ||
+ | |||
+ | Loads to: Random location (see [https://en.wikipedia.org/wiki/Address_space_layout_randomization#Linux here]) | ||
+ | |||
+ | Starts at: from 0x10000 to around 0x80000000 for 32bit binaries | ||
+ | |||
+ | File extension: none | ||
+ | |||
+ | ==Atari ST== | ||
+ | ===TOS=== | ||
+ | System: Atari ST | ||
+ | |||
+ | Header: 32 Bytes | ||
+ | |||
+ | Native size unit: ??? | ||
+ | |||
+ | Loads to: | ||
+ | |||
+ | Starts at: | ||
+ | |||
+ | File extension: | ||
+ | |||
+ | |||
+ | ==Amiga== | ||
+ | ===...=== | ||
+ | System: Amiga | ||
+ | |||
+ | Header: | ||
+ | |||
+ | Native size unit: ??? | ||
Loads to: | Loads to: | ||
− | Starts at: | + | Starts at: |
− | File extension: | + | File extension: |
− | ==Commodore== | + | ==Commodore 64== |
===PRG=== | ===PRG=== | ||
System: CBM-DOS (Commodore, e.g. C64) | System: CBM-DOS (Commodore, e.g. C64) | ||
Line 89: | Line 118: | ||
File extension: .exe .com .xex (any ending possible) | File extension: .exe .com .xex (any ending possible) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Amstrad== | ==Amstrad== |
Latest revision as of 10:41, 10 February 2022
Contents
File formats
File formats describe the content of a file.
This page is not about:
- File systems which organize files on a partition
- Disk images which save a (disk) file system within one file
- Tape file formats, as they have a higher overhead usually
IBM PC
COM
System: MS-DOS
Header: 0 bytes see here
Native size unit: Bytes
Loads to: 0100h
Starts at:
File extension: .com
EXE
System: Windows
Header: 200+
Native size unit: Bytes
Loads to:
Starts at:
File extension: .exe
ELF
System: Linux
Header: 45 - 100+
Native size unit: Bytes
Loads to: Random location (see here)
Starts at: from 0x10000 to around 0x80000000 for 32bit binaries
File extension: none
Atari ST
TOS
System: Atari ST
Header: 32 Bytes
Native size unit: ???
Loads to:
Starts at:
File extension:
Amiga
...
System: Amiga
Header:
Native size unit: ???
Loads to:
Starts at:
File extension:
Commodore 64
PRG
System: CBM-DOS (Commodore, e.g. C64)
Header: 2 bytes (= start address)
Native size unit: Blocks (256 bytes including 2 bytes linking to next block)
Loads to: given address in header
Starts at: given address in header
File extension: .prg
P00
System: CBM-DOS / PC64 Emulator
Header: extended 26 bytes; also includes the name; see here
Native size unit: Blocks
Loads to: given address in header
Starts at: given address in header
File extension: .p00
Atari 8bit
XEX, EXE, COM
System: Atari
Header: 6 bytes or more (FF FF <start address> <end address>); see also here
Native size unit: ???
Loads to: given start address in header
Starts at: given end address in header
File extension: .exe .com .xex (any ending possible)
Amstrad
BIN
System: AMSDOS (Amstrad CPC)
Header: 128 bytes (includes filename, start address, end address, etc.; 95 unused bytes; see also AMSDOS-Header
Native size unit: kb
Loads to: given start address in header
Starts at: given end address in header
File extension: .bin (on PC)
Spectrum
Binary
System: ZX Spectrum
Header: none
Native size unit: ???
Loads to: special loader required; usually a BASIC program
Starts at: see above
File extension: ??? usually delivered within a disk image (.trd)